javascript - 带句点的 MongoDB 文本搜索

原文 标签 javascript node.js mongodb

我在 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 在对原始问题的评论中指出的那样,您可以通过用引号将搜索词括起来来防止 split :

db.test.runCommand("text", { search: '"blah.dll"' })

一个重要的问题是,这样做也会改变查询的语义,因为每个引用的单词都需要匹配:

'blah.dll 的东西' - 返回包含 blah 或 dll 或其他内容的文档。

'blahdll 的东西' - 返回包含 blahdll 或其他内容的文档。

'“blah.dll”某事' - 返回包含 blah.dll(必需)和某些内容(可选)的文档。

'"blah.dll""某事"' - 返回包含 blah.dll(必需)和某些东西(必需)的文档。

关于javascript - 带句点的 MongoDB 文本搜索,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24532117/

相关文章:

javascript - 在 jQuery UI (MultipleDates) 中向日历日添加类

javascript - 如何创建带有左侧标签和样式的复选框

node.js - docker 容器中的应用程序无法在同一容器上调用服务

ruby-on-rails - Rails 3和Mongoid:嵌入式文档验证

node.js - 带有异步操作的 Mongoose 游标

javascript - 在对象中搜索标题时,如何在 Node 的mongoDB中进行过滤以获取整个对象

javascript - 确定 HTML 元素是否在视口(viewport)中的最有效方法?

javascript - 加载时引导过渡到最后一个 slider

node.js - Docker Dynamodb 错误 : Nodejs App with dynamodb does not work in docker but works without it

node.js - 根据客户端POST表单的FIELDS切换套接字[Sails node js]