Docs 菜单
Docs 主页
/
Atlas
/ /

索引参考

Atlas Search索引是一种数据结构,可将Atlas 集群中的文档映射到从这些文档中提取的术语。 Atlas Search索引启用对数据库进行高效的全文搜索。

定义Atlas Search索引时,可以使用 静态或动态映射来指定要在集合中索引的字段。您还可以使用分析器来定义Atlas Search如何从string 字段或查询字符串中提取可搜索词元。最后,您可以在索引定义中应用其他配置选项,以提高Atlas Search查询的性能和准确性,包括在索引中存储源字段或定义同义词映射的选项。

要学习;了解如何根据查询要求定义Atlas Search索引,请参阅创建Atlas Search索引。定义Atlas Search索引后,您可以使用创建Atlas Search索引教程将该索引添加到Atlas 集群。要学习;了解如何查看、编辑、更新或删除Atlas Search索引,请参阅管理Atlas Search索引

本页介绍Atlas Search索引的 JSON语法和定义选项。

1{
2 "mappings": {
3 "dynamic": <boolean>,
4 "fields": { <field-definition> }
5 }
6}
7
1{
2 "analyzer": "<analyzer-for-index>",
3 "searchAnalyzer": "<analyzer-for-query>",
4 "mappings": {
5 "dynamic": <boolean>,
6 "fields": { <field-definition> }
7 },
8 "numPartitions": <integer>,
9 "analyzers": [ <custom-analyzer> ],
10 "storedSource": <boolean> | {
11 <stored-source-definition>
12 },
13 "synonyms": [
14 {
15 <synonym-mapping-definition>
16 }
17 ]
18}
19
字段
类型
必要性
说明

analyzer

字符串

Optional

指定在建立索引时应用于字符串字段的分析器

如果您仅在顶部设置此项,并且没有为索引定义中的字段指定分析器,则 Atlas Search 会将此分析器应用于所有字段。若要为每个字段使用不同的分析器,必须为该字段指定不同的分析器。

如果省略,则默认为标准分析器

analyzers

Optional

指定在该索引中使用的自定义分析器

mappings

必需

指定如何在该索引的不同路径中对字段进行索引。

mappings.dynamic

布尔

Optional

为该索引的字段启用或禁用动态映射。

如果设置为 true,Atlas Search 将递归索引所有动态可索引字段。

如果设置为 false,您必须使用 mappings.fields 指定要进行索引的各个字段。

如果省略,则默认值为 false

重要提示:Atlas Search 使用检测到的数据类型的默认设置动态对 document 中的所有字段进行索引。Atlas Search 还会动态对 document 中嵌套的所有文档进行索引,除非您将 dynamic 设置为 false 以明确覆盖该行为。

有关索引配置示例,请参阅静态映射示例组合映射示例

mappings.fields

文档

可选的

指定要编制索引的字段。仅在禁用了动态映射时才是必需的。

您无法对字段名称开头包含美元 ($) 符号的字段创建索引。

要了解更多信息,请参阅定义字段映射。

searchAnalyzer

字符串

Optional

指定在使用查询文本进行搜索之前为其应用的分析器

如果省略,则默认为您为 analyzer 选项指定的分析器。如果同时省略 searchAnalyzeranalyzer 选项,则默认为标准分析器

numPartitions

int

Optional

指定文档计数超过 20 亿时要创建的子索引数量。以下有效值:124。如果省略,则默认为 1

要使用索引分区,您必须在集群中部署搜索节点。

storedSource

布尔值或存储的源定义

Optional

使用 returnedStoredSource 选项指定要存储的文档字段,以便在查询时查找。您可以在 Atlas Search 上存储所有数据类型的字段。值可以是以下值之一:

  • true— 存储所有字段

  • false— 不存储任何字段

  • 指定在存储中包括 (include) 或排除 (exclude) 的字段的对象

storedSource 仅适用于运行以下版本之一的 Atlas 集群:

  • MongoDB 5.0.6 +

  • MongoDB 6.0+

  • MongoDB 7.0+

如果省略,则默认值为 false

要了解更多信息,请参阅在 Atlas Search 索引中定义存储的源字段。

synonyms

Optional

要在索引中使用的同义词映射。

一个索引定义只能具有一个同义词映射

要了解更多信息,请参阅在 Atlas Search 索引中定义同义词映射

如果在 Atlas Search mongot进程未安装或运行时运行$search查询,则会返回以下错误:

MongoError: Remote error from mongot :: caused by :: Error connecting to localhost:28000.

仅当定义第一个 Atlas Search 索引时才会安装mongot进程。如果您的 Atlas 集群中没有任何 Atlas Search 索引,请至少创建一个 Atlas Search 索引来解决此错误。

要学习;了解如何定义Atlas Search索引以满足Atlas Search查询需求,请参阅创建Atlas Search索引。

要学习;了解如何向Atlas 集群添加索引,请参阅创建Atlas Search索引。

要学习;了解有关可用索引配置选项的更多信息,请参阅以下参考页面:

后退

管理索引

在此页面上