MongoDB 全文搜索
使用文本索引和 $text 操作符进行高效的全文检索。 · 难度:入门 · +15XP
文本索引
MongoDB 提供文本索引来支持字符串内容的搜索。可以在一个或多个字段上创建文本索引。
db.articles.createIndex({ title: 'text', content: 'text' });基本搜索
使用 $text 操作符和 $search 进行搜索:
db.articles.find({ $text: { $search: 'mongodb 教程' } });高级选项
| 选项 | 说明 |
|---|---|
| $search | 搜索关键词,用空格分隔 |
| $language | 指定语言(如 'english', 'none') |
| $caseSensitive | 是否区分大小写(默认 false) |
| $diacriticSensitive | 是否区分变音符号 |
排除与短语
// 排除单词 -apple
// 精确短语 "\"exact phrase\""
db.articles.find({ $text: { $search: 'mongodb -apple "performance tuning"' } });评分与排序
使用 $meta: 'textScore' 获取相关性评分并排序:
db.articles.find({ $text: { $search: 'mongodb' } }, { score: { $meta: 'textScore' } })
.sort({ score: { $meta: 'textScore' } });练习提示
在博客文章集合上创建文本索引,搜索包含“数据库”和“性能”的文章,按相关性排序。