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