1、全文索引:对字符串与字符串数组创建全文可搜索的索引;
适用情况:{author:"", title:"", article:""}
2、建立方法:
db.articles.ensureIndex({key:"text"})
db.articles.ensureIndex({key_1:"text", "key_2:"text"})
db.articles.ensureIndex({"$**":"text"})
3、如何适用全文索引查询
db.articles.find({$text:{$search:"coffee"}})
db.articles.find({$text:{$search:"aa bb cc"}})
db.articles.find({$text:{$search:"aa bb -cc"}})
db.articles.find({$text:{$search:"\"aa\" bb cc"}}
4、全文索引相似度查询
$meta操作符:{score:{$meta:"textScore"}}。
写在查询条件后面可以返回结果的相似度。
与sort一起使用,可以达到很好的实用效果。
5、全文索引的使用限制
1、每次查询,只能指定一个$text查询。
2、$text查询不能出现在$nor查询中。
3、查询中如果包含了$text,hint不再起作用。
4、很可惜,MongoDB全文索引还不支持中文。