MongoDB文本搜索和带有词

时间:2017-09-21 00:45:38

标签: mongodb full-text-search

我试图在文本中搜索多个单词(AND操作) 不会丢失词语。

例如:

db.supplies.runCommand(" text",{search:" printer ink"}) 应使用(打印机墨水)或(打印机墨水)或(打印机墨水)或(打印机墨水)返回结果,而不是使用打印机或墨水的所有结果。

这篇文章涵盖了将多个单词作为AND操作进行搜索,但该解决方案并未搜索词干 - > MongoDB Text Search AND multiple search words

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

这可能不是搜索大型集合的有效方法。

有没有更好更聪明的方法呢?

1 个答案:

答案 0 :(得分:1)

那么你有必要使用文本搜索吗?如果是我,我会使用正则表达式。

https://docs.mongodb.com/manual/reference/operator/query/regex/

我最喜欢这样的东西。

db.collection.find({products:/printers inks|printers|inks/})

现在我想你也可以用文本搜索做同样的事情。

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

注意转义的报价。