Docs 菜单
Docs 主页
/
MongoDB Manual
/ / /

自管理部署的文本索引限制

在此页面上

  • 每个collection一个文本索引
  • 文本搜索和提示
  • 文本搜索和短语
  • 文本索引和排序
  • 复合文本索引
  • 排序规则选项

文本索引具有以下限制:

一个集合最多可以有一个文本索引。

Atlas Search (在 MongoDB Atlas中提供)支持在单个集合上使用多个全文Atlas Search索引。 要了解更多信息,请参阅Atlas Search 文档。

如果查询包含 $text表达式,则不能使用 hint()指定用于查询的索引。

如果 $text 操作的 $search 字符串包含短语和单个词,$text 仅会匹配包含该短语的文档。

您不能搭配多个短语使用 $text 操作符。

文本索引无法提高排序操作的性能。 此限制适用于单字段索引和复合文本索引。

复合索引可以包括文本索引键与升序和降序索引键的组合。 However, compound text indexes have these restrictions:

  • 复合文本索引不能包含任何其他特殊索引类型,例如多键地理空间索引字段。

  • 如果复合文本索引包含文本索引键之前的键,要使用$text ,查询谓词必须包含前面键的等值匹配条件

  • 创建复合文本索引时,所有文本索引键必须在索引规范文档中相邻列出。

有关复合文本索引的示例,请参阅以下页面:

文本索引仅支持二进制比较,不支持排序规则选项。 二进制比较比较每个字符串中每个字符的 Unicode 数值,不考虑字母大小写或重音符号。

要在具有非简单排序规则的collection上创建文本索引,您必须在创建索引时显式指定{ collation: { locale: "simple" } }

例如,考虑一个名为 collationTest 的集合,其排序规则为 { locale: "en" }

db.createCollection(
"collationTest",
{
collation: { locale: "en" }
}
)

要在collationTestcollection上创建文本索引,您必须指定{ collation: { locale: "simple" } } 。以下命令在quotes字段上创建文本索引:

db.collationTest.createIndex(
{
quotes: "text"
},
{
collation: { locale: "simple" }
}
)

后退

属性