我在使用 MongoDB 中的全文搜索功能时遇到一些问题。可以说我有这个:
db.test.insert({fname:"blah.dll"})
db.test.insert({fname:"something.dll"})
db.test.ensureIndex({fname:"text"})
那我就...
db.test.runCommand("text", { search: "blah.dll" })
这将返回两个文档。似乎句点导致它是:blah OR dll。
在这种情况下正确的搜索方法是什么?
谢谢。
最佳答案
正如 Ben Fortune 在对原始问题的评论中指出的那样,您可以通过用引号将搜索词括起来来防止拆分:
db.test.runCommand("text", { search: '"blah.dll"' })
一个重要的问题是,这样做也会改变查询的语义,因为每个引用的单词都需要匹配:
'blah.dll Something' - 返回包含 blah 或 dll 或其他内容的文档。
'blahdll Something' - 返回包含 blahdll 或其他内容的文档。
'“blah.dll”某些内容' - 返回包含 blah.dll(必需)和某些内容(可选)的文档。
'"blah.dll""something"' - 返回包含 blah.dll(必需)和某些内容(必需)的文档。
关于javascript - MongoDB 带句点的文本搜索,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24532117/