MongoDB文本搜索和具有词干的多个搜索词
我正在尝试在文本中搜索多个单词(和操作) 不丢失词干 例如: runCommand(“text”,{search:“打印机墨水”}) 应使用(打印机和墨水)或(打印机墨水)或(打印机墨水)或(打印机墨水)或(打印机墨水)返回结果,而不是使用打印机或墨水返回所有结果 本文将搜索多个单词作为AND操作,但解决方案不会搜索词干单词-> 我能想到的唯一方法是创建所有单词的排列,然后搜索排列的数量(可能很大) 这可能不是搜索大型收藏的有效方法MongoDB文本搜索和具有词干的多个搜索词,mongodb,full-text-search,Mongodb,Full Text Search,我正在尝试在文本中搜索多个单词(和操作) 不丢失词干 例如: runCommand(“text”,{search:“打印机墨水”}) 应使用(打印机和墨水)或(打印机墨水)或(打印机墨水)或(打印机墨水)或(打印机墨水)返回结果,而不是使用打印机或墨水返回所有结果 本文将搜索多个单词作为AND操作,但解决方案不会搜索词干单词-> 我能想到的唯一方法是创建所有单词的排列,然后搜索排列的数量(可能很大) 这可能不是搜索大型收藏的有效方法 有更好、更聪明的方法吗?那么,你为什么要使用文本搜索呢?如果是
有更好、更聪明的方法吗?那么,你为什么要使用文本搜索呢?如果是我,我会使用正则表达式 从我的头顶上掉下来,像这样的东西
db.collection.find({products:/printers inks|printers|inks/})
现在我想你也可以用文本搜索做同样的事情
db.collection.find({$text:{$search : "\"printers inks\" printers inks"}})
注意转义的引号 OP希望所有术语都存在于每个匹配的文档中。你的两个答案都过于随意,它们只与其中一个术语的文档相匹配。