文本索引限制

文本索引有以下限制:

每个集合一个文本索引

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

图集搜索(适用于MongoDB 阿特拉斯) 支持单个集合上的多个全文搜索索引。要了解更多信息,请参阅Atlas 搜索文档。

文本搜索和提示

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

文本索引和排序

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

复合文本索引

复合索引可以包括文本索引键与升序和降序索引键的组合。但是,复合文本索引有以下限制:

  • 复合文本索引不能包含任何其他特殊索引类型,例如多键地理空间索引字段。
  • 如果复合文本索引包含文本索引键之前的$text键,则要执行搜索,查询谓词必须包含前面的键的相等匹配条件。
  • 创建复合文本索引时,所有文本索引键必须在索引规范文档中相邻列出。

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

排序选项

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

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

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

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

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

db.collationTest.createIndex(
   {
      quotes: "text"
   },
   {
      collation: { locale: "simple" }
   }
)
Copyright © 上海锦木信息技术有限公司 all right reserved,powered by Gitbook文件修订时间: 2023-09-01 17:10:26

results matching ""

    No results matching ""