主题
文本索引与全文搜索
MongoDB 提供文本索引功能,用于对字符串字段建立索引,支持全文搜索,提高文本检索效率。
创建文本索引
使用 createIndex()
方法为字段创建文本索引:
js
db.articles.createIndex({ content: "text" })
- 可以对多个字段创建复合文本索引:
js
db.articles.createIndex({ title: "text", content: "text" })
使用全文搜索
通过 $text
查询操作符执行全文搜索:
js
db.articles.find({ $text: { $search: "MongoDB tutorial" } })
- 支持逻辑运算符如
AND
、OR
,使用引号精确匹配。
排序与得分
查询结果会带有匹配度评分(textScore
),可以用来排序:
js
db.articles.find(
{ $text: { $search: "MongoDB tutorial" } },
{ score: { $meta: "textScore" } }
).sort({ score: { $meta: "textScore" } })
注意事项
- 只支持一种文本索引,每个集合只能有一个文本索引。
- 支持的语言会影响分词效果,默认是英语。
- 适用于对文本字段的全文内容搜索。
通过文本索引和全文搜索,MongoDB 能高效处理大规模文本数据的检索需求。