繁体   English   中英

Mongo Db按索引字段搜索

[英]Mongo Db search by indexed field

我将字段'search_string'添加到我的文档中并将其编入索引。 db.my_collection.createIndex({search_string: "text"}) Search_string包含:'a ar are aren arena'。

我可以找到这样的记录: db.my_collection.find({$text: {$search: 'ar'}})db.my_collection.find({$text: {$search: 'аren'}})db.my_collection.find({$text: {$search: 'arenа'}}) ,但是db.my_collection.find({$text: {$search: 'а'}})db.my_collection.find({$text: {$search: 'аre'}})什么都不返回。 为什么会这样?

来自MongoDB 手册

匹配操作

停止言语

$ text运算符忽略特定于语言的停用词,例如and和in English。

“a”和“are”都在默认的英语停用词列表中,因此将被忽略。 快速谷歌搜索英语停用词将找到大量页面与完整列表。

默认情况下,MongoDB使用英语进行文本索引,并且停用词未编入索引。

如果您指定语言值“none”,则文本搜索使用简单的标记化,没有停用词列表且没有词干。

所以你应该像这样创建你的索引:

db.my_collection.createIndex( { search_string : "text" }, { default_language: "none" } )

MongoDB文档在这里

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM