# 文本索引与全文搜索

URL: https://caijiao.org/mongodb/05-indexes/03-text-index
Source: docs/mongodb/05-indexes/03-text-index.md
Description: 本章节介绍 MongoDB 的文本索引和全文搜索功能，帮助用户实现对文本数据的高效搜索。

[MongoDB](/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 能高效处理大规模文本数据的检索需求。
