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