自管理部署上的文本索引
注意
本页介绍自托管(非 Atlas)部署的文本查询功能。 对于MongoDB Atlas上托管的数据, MongoDB提供改进的全文查询解决方案Atlas Search和向量搜索解决方案Atlas Vector Search。
文本索引支持对包含字符串内容的字段进行 文本搜索查询。当您在字符串内容中搜索特定单词或字符串时,文本索引可以提高性能。
一个集合只能有一个文本索引,但该索引可以包含多个字段。
要创建文本索引,请使用以下原型:
db.<collection>.createIndex( { <field1>: "text", <field2>: "text", ... } )
$text 支持
文本索引支持本地部署上的 $text
查询操作。要使用 $text
,您必须创建文本索引。
用例
在线商店的 clothing
集合中的文档包含一个 description
字段,其中包含描述每个项目的文本字符串。要查找由 silk
制成的衣服,请在 description
字段上创建一个文本索引,并对包含关键字 silk
的文档运行 $text
查询。该搜索将返回在 description
字段中提及 silk
的所有文档。
开始体验
要了解如何创建文本索引以及如何在具体应用场景中使用文本索引,请参阅:
详情
本节介绍文本索引的详细信息。
复合文本索引
对于包含文本索引键以及其他类型键的复合索引,只有文本索引字段决定索引是否引用了文档。其他键不决定索引是否引用了文档。
覆盖查询
sparse
属性
文本索引始终是稀疏索引。当您创建文本索引时,MongoDB 会忽略 sparse
选项。
如果现有或新插入的文档缺少文本索引字段(或该字段为空或为空数组),MongoDB 不会为该文档添加文本索引项。
存储要求和性能成本
文本索引的存储要求和性能成本如下:
了解详情
要学习;了解有关文本索引的更多信息,请参阅:
有关文本搜索示例,请参见
$text reference page
。有关聚合管道中的示例
$text
操作,请参阅自托管部署上的聚合管道中的 $text。