Docs 菜单
Docs 主页
/
Atlas
/ /

索引参考

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

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

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

本页介绍MongoDB搜索索引的 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

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

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

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

analyzers

Optional

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

mappings

必需

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

mappings.dynamic

布尔

Optional

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

如果设立为 true, MongoDB Search 将以递归方式索引所有动态可索引字段。

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

如果省略,则默认值为 false

重要提示: MongoDB Search 使用检测到的数据类型的默认设置动态索引 document 中的所有字段。MongoDB Search 还会动态索引 document 下的所有嵌套文档,除非您通过将 dynamic 设置为 false 来显式覆盖。

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

mappings.fields

文档

可选的

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

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

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

searchAnalyzer

字符串

Optional

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

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

numPartitions

int

Optional

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

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

storedSource

布尔值或存储的源定义

Optional

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

  • true— 存储所有字段

  • false— 不存储任何字段

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

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

  • MongoDB 7.0+

如果省略,则默认值为 false

要学习;了解更多信息,请参阅在MongoDB搜索索引中定义存储源字段。

synonyms

Optional

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

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

要学习;了解更多信息,请参阅在MongoDB搜索索引中定义同义词映射。

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

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

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

要学习了解如何定义MongoDB搜索索引以满足MongoDB搜索查询需求,请参阅管理MongoDB搜索索引。

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

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

后退

管理索引

在此页面上