MongoDb索引全文搜索

时间:2018-05-16 12:48:15

标签: mongodb indexing mongoose

我有一个名为“posts”的文档,它是这样的:

gem uninstall fileutils

我在标题和描述上推荐了索引:

{ 
    "_id" : ObjectId("5afc22290c06a67f081fa463"), 
    "title" : "Cool", 
    "description" : "this is amazing" 
}

问题是,当我搜索并输入例如“amaz”时,它返回上面带有“this is amazing”的数据,而它只应在我输入“amazing”时返回数据

db.posts.createIndex( { title: "text", description: "text" } )

1 个答案:

答案 0 :(得分:1)

在@amenadiel中获取原始数据:

https://stackoverflow.com/a/24316510/7948962

来自MongoDB文档:

https://docs.mongodb.com/manual/core/index-text/

  

索引条目

     

文本索引标记并限制索引条目的索引字段中的术语。 text index为集合中每个文档的每个索引字段中的每个唯一词干项存储一个索引条目。该索引使用简单的语言特定后缀词干。

这是为了让你搜索部分" stem"索引中的术语,并让数据库返回所有相关结果。在您的特定情况下,amaz有点奇怪,因为它与talking等其他单词相比有点不规则,后者被标记为单词talk或{{ 1}}到talked。同样地talkwalkingwalked

在您的情况下,文字中的walk字将被标记为amazing。如果您的列包含amaz等数据,它也会收到相同的amazed令牌。这些结果也将通过搜索amaz返回。