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