【发布时间】:2015-07-27 17:10:06
【问题描述】:
所以根据 MongoDB 文档,
如果文档字段包含单词 blueberry,则搜索该术语 蓝色将与文档不匹配
这对我的用例有好处,这是我想要发生的。但是,鉴于以下数据库条目:
> db.test.drop()
> db.test.insert({ "t" : "Men's Fashion" })
> db.test.insert({ "t" : "Women's Fashion" })
> db.test.ensureIndex({ "t" : "text" })
搜索 Men's 返回预期结果:
> db.test.find({ "$text" : { "$search" : "\"Men's\"" } }, { "_id" : 0 })
{ "t" : "Men's Fashion" }
但是搜索整个短语 Men's Fashion,居然还返回 Women's Fashion:
> db.test.find({ "$text" : { "$search" : "\"Men's Fashion\"" } }, { "_id" : 0 })
{ "t" : "Women's Fashion" }
{ "t" : "Men's Fashion" }
我也尝试过"\"Men's\"\"Fashion\"",结果相同。是否有解决方法/技巧让完整的短语只返回整个单词匹配?
我使用的是 Mongo 2.6.4。有趣的是,它的女性得分确实低于男性。
【问题讨论】:
-
好问题。我在使用 Mongo 3.0.4 时看到了同样奇怪的行为。
-
因为女装与男装相匹配...
标签: mongodb mongodb-query