Make the MongoDB docs better! We value your opinion. Share your feedback for a chance to win $100.
Click here >
Docs 菜单
Docs 主页
/ /

自管理部署上的文本索引

注意

本页介绍自托管(非 Atlas)部署的文本查询功能。 对于MongoDB Atlas上托管的数据, MongoDB提供改进的全文查询解决方案 Atlas Search和向量搜索解决方案Atlas Vector Search。

文本索引支持对包含string内容的字段进行 文本搜索查询。文本索引可提高搜索特定单词或字符串时的性能。

一个集合只能有一个文本索引,但该索引可以包含多个字段。

要创建文本索引,请使用以下原型:

db.<collection>.createIndex(
{
<field1>: "text",
<field2>: "text",
...
}
)

文本索引支持对自行管理的部署进行$text查询。您必须创建文本索引才能使用 $text

在线商店的 clothing集合有一个 description字段,其中包含一个string文本描述每件商品。要查找由 "silk" 制成的衣服,请在 description 上创建文本索引并为 "silk"运行$text查询。搜索将返回在 description 中提及 "silk" 的所有文档。

要学习;了解如何创建和使用文本索引,请参阅:

本节介绍文本索引的详细信息。

在具有文本索引键和其他键类型的复合索引中,只有文本索引字段决定索引是否引用文档。其他键不影响文档引用。

文本索引无法涵盖查询。

文本索引始终是稀疏的。创建文本索引时, MongoDB会忽略 sparse 选项。

MongoDB不会为缺少 文本索引字段、具有 null 值或具有空数组的文档添加文本索引项。

文本索引具有以下存储和性能特征:

  • 文本索引会占用大量RAM。它们为每个文档的每个索引字段中的每个唯一词干包含一个索引项。

  • 构建文本索引与构建大型多键索引类似,但比对相同数据构建有序(标量)索引需要更长的时间。

  • 构建大型文本索引时,请确保有足够的文件限制。请参阅推荐设置

  • 文本索引影响写入性能,因为MongoDB必须为新文档的每个索引字段中的每个唯一的词干词添加一个索引项。

  • 文本索引存储单个单词,而不是多单词字符串或单词邻近信息。当整个集合都容纳在RAM中时,包含多个单词的查询运行更快。

后退

$text 查询语言

在此页面上