MongoDB使用$text操作符实现多关键词AND逻辑文本搜索方案
解决方案
你可以通过 MongoDB 文本搜索的强制匹配前缀实现需求,只需要给每个要求必须包含的关键词前加上+前缀即可,正确查询语句如下:
db.news.find({ $text: { $search: "+covid +vaccination" } })
原理解释
- 你之前使用的
"\"covid vaccination\""写法属于短语匹配规则:要求两个关键词必须按输入顺序连续出现,所以无法匹配顺序不同、中间有其他内容的文档。 - 新写法中的
+是 MongoDB 文本搜索的保留前缀,标记该关键词必须出现在匹配文档的文本索引字段中,不受关键词出现顺序、间隔距离的限制,只要所有带+前缀的关键词都存在就会命中文档。
内容的提问来源于stack exchange,提问作者Pétur Haukur Jóhannesson
相关产品推荐
相关产品推荐

