我试图在文本中搜索多个单词(AND操作) 不会丢失词语。
例如:
db.supplies.runCommand(" text",{search:" printer ink"}) 应使用(打印机墨水)或(打印机墨水)或(打印机墨水)或(打印机墨水)返回结果,而不是使用打印机或墨水的所有结果。
这篇文章涵盖了将多个单词作为AND操作进行搜索,但该解决方案并未搜索词干 - > MongoDB Text Search AND multiple search words。
我能想到的唯一方法是创建所有单词的排列,然后运行搜索排列的数量(可能很大)
这可能不是搜索大型集合的有效方法。
有没有更好更聪明的方法呢?
答案 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"}})
注意转义的报价。