Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
MongoDB文本搜索和具有词干的多个搜索词_Mongodb_Full Text Search - Fatal编程技术网

MongoDB文本搜索和具有词干的多个搜索词

MongoDB文本搜索和具有词干的多个搜索词,mongodb,full-text-search,Mongodb,Full Text Search,我正在尝试在文本中搜索多个单词(和操作) 不丢失词干 例如: runCommand(“text”,{search:“打印机墨水”}) 应使用(打印机和墨水)或(打印机墨水)或(打印机墨水)或(打印机墨水)或(打印机墨水)返回结果,而不是使用打印机或墨水返回所有结果 本文将搜索多个单词作为AND操作,但解决方案不会搜索词干单词-> 我能想到的唯一方法是创建所有单词的排列,然后搜索排列的数量(可能很大) 这可能不是搜索大型收藏的有效方法 有更好、更聪明的方法吗?那么,你为什么要使用文本搜索呢?如果是

我正在尝试在文本中搜索多个单词(和操作) 不丢失词干

例如:

runCommand(“text”,{search:“打印机墨水”}) 应使用(打印机和墨水)或(打印机墨水)或(打印机墨水)或(打印机墨水)或(打印机墨水)返回结果,而不是使用打印机或墨水返回所有结果

本文将搜索多个单词作为AND操作,但解决方案不会搜索词干单词->

我能想到的唯一方法是创建所有单词的排列,然后搜索排列的数量(可能很大)

这可能不是搜索大型收藏的有效方法


有更好、更聪明的方法吗?

那么,你为什么要使用文本搜索呢?如果是我,我会使用正则表达式

从我的头顶上掉下来,像这样的东西

db.collection.find({products:/printers inks|printers|inks/})
现在我想你也可以用文本搜索做同样的事情

db.collection.find({$text:{$search : "\"printers inks\" printers inks"}})

注意转义的引号

OP希望所有术语都存在于每个匹配的文档中。你的两个答案都过于随意,它们只与其中一个术语的文档相匹配。