我有我的收藏,例如,Đà Nẵng。我希望能够通过搜索Da Nang来检索它,所以我使用$text搜索,这在默认情况下是不敏感的,大小写也不敏感。凉爽的。
db.cities.find({$text: {$search: '"Da Nang"'}})
如果我想搜索完整的短语,而不是Da和Nang,我必须把它放在引号中。问题是,这显然覆盖了对话框的不敏感性(我确实尝试显式地将$diacriticSensitive设置为false)。它只搜索确切的字符串Da Nang。那我怎么能两全其美呢?
一种可能是不引用它,而是按textScore进行排序,但我对该方法的可靠性没有太大的信心。
发布于 2022-01-18 00:44:36
对于其他碰巧有这个问题的人来说,解决办法是使用排序规则。
db.cities.find({'name':'Da Nang'}).collation({locale: 'en_US', strength: 1 })
https://stackoverflow.com/questions/70749010
复制相似问题