Docs 菜单
Docs 主页
/
MongoDB Atlas
/ / /

查看 Atlas Search 搜索索引语法

在此页面上

  • 语法
  • 选项

Atlas Search 可以通过不同的方式对数据进行索引。在定义 Atlas Search 索引时,您可以指定一个特定分析器或多个分析器以对某些字段进行索引。要了解更多信息,请参阅使用分析器处理数据。您还可以对某些字段进行索引并忽略其他字段,或者可以动态对集合中的所有字段进行索引。要了解更多信息,请参阅 定义字段映射。您可以通过 Atlas UIAtlas Search APIAtlas CLImongosh驱动程序 定义 Atlas Search 索引。

本页介绍了 Atlas Search 索引的 JSON 语法和字段。

重要

如果您使用 $out 聚合阶段修改具有 Atlas Search 索引的集合,则必须删除并重新创建搜索索引。如果可能,请考虑使用 $merge 而不是 $out

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": 4,
9 "analyzers": [ <custom-analyzer> ],
10 "storedSource": <boolean> | {
11 <stored-source-definition>
12 },
13 "synonyms": [
14 {
15 "name": "<synonym-mapping-name>",
16 "source": {
17 "collection": "<source-collection-name>"
18 },
19 "analyzer": "<synonym-mapping-analyzer>"
20 }
21 ]
22}
23
字段
类型
必要性
说明

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 亿时要创建的子索引数量。以下值是有效的:1248163264 。如果省略,则默认为 1

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

重要

numPartitions选项是作为“预览”功能的。

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 索引中定义同义词映射

后退

4:配置同义词映射

在此页面上