Docs 主页 → 启动和管理 MongoDB → MongoDB Atlas
如何为自动完成的字段创建索引
您可以使用 Atlas Search autocomplete
类型对字符串字段中的文本值进行索引以支持自动完成。您可以配置autocomplete
类型以满足各种使用案例的要求。要详细了解autocomplete
类型可用的配置选项,例如分词策略和变音符号折叠,请参阅配置autocomplete
字段属性。您只能使用autocomplete操作符查询索引为autocomplete
类型的字段。
您还可以使用 autocomplete
类型创建索引:
值为字符串数组的字段。要了解更多信息,请参阅如何对数组元素进行索引。
作为 embeddedDocuments 类型索引的文档数组中的字符串字段。
提示
如果要使用 autocomplete 操作符对大量文档和数据运行 Atlas Search 查询,构建该索引可能需要一些时间。或者,您可以创建仅包含 autocomplete
类型的单独索引,以减少构建索引时对其他索引和查询的影响。
要了解更多信息,请参阅 Atlas Search 索引性能注意事项。
Atlas Search 不会动态地对 autocomplete
类型的字段进行索引。您必须 使用静态映射对 autocomplete
字段进行索引。您可以使用 Atlas 用户界面中的可视化编辑器或 JSON 编辑器对 autocomplete
类型的字段进行索引。
为autocomplete
类型定义索引
要定义 autocomplete
类型的索引,请在 Atlas UI 中选择您的首选配置方法,然后选择数据库和集合。
配置autocomplete
字段属性
Atlas Search autocomplete
类型采用以下参数:
选项 | 类型 | 必要性 | 说明 | 默认 | |
---|---|---|---|---|---|
type | 字符串 | 必需 | 标识该字段类型的人类可读标签。值必须为字符串。 | ||
analyzer | 字符串 | 可选 | lucene.standard | ||
maxGrams | int | 可选 | 每个索引序列的最大字符数。该值限制索引词元的字符长度。在搜索长度超过 maxGrams 值的词语时,Atlas Search 将词元截断为 maxGrams 长度。 | 15 | |
minGrams | int | 可选 | 每个索引序列的最小字符数。我们建议将 4 作为最小值。小于 4 的值可能会影响性能,因为索引可能会变得非常大。我们建议仅对 edgeGram 使用默认值 2 。 | 2 | |
tokenization | Enum | 可选 | 对字段进行索引以支持自动完成时使用的分词策略。值可以是以下值之一:
在使用 注意与对字符串字段进行索引相比,使用 | edgeGram | |
foldDiacritics | 布尔 | 可选 | 该标记表示是在索引文本中包括还是删除变音符号。值可以是以下值之一:
| true |