Docs 菜单
Docs 主页
/
Atlas
/ /

索引参考

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

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

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

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

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

analyzer

字符串

Optional

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

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

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

analyzers

Optional

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

mappings

必需

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

mappings.dynamic

布尔值或对象

Optional

启用字段类型的动态映射或为此索引单独配置字段。

值必须是以下值之一:

  • 布尔值 -设立为 true 将对所有可索引字段类型递归索引,或设立为 false 不对任何可索引字段类型动态索引。

  • 对象- 指定用于对所有可索引字段类型进行递归索引的typeSet。要学习;了解详情,请参阅 mappings.dynamic.typeSet

如果省略,则默认为 false。如果设立为 false,则必须将各个字段定义为使用 mappings.fields 进行静态索引。

您还可以使用 mappings.fields 单独配置字段以覆盖默认设置。 mappings.fields 中字段的设置会覆盖默认设置。

重要提示: MongoDB Searchdocument 会自动为 中的所有动态可索引字段类型建立索引。 MongoDB Search 还会递归索引document dynamicfalse下的所有嵌套文档,除非您通过将 设置为 来显式覆盖。您还可以使用typeSets 将动态索引配置为仅对指定字段类型进行索引。

要学习;了解可以为动态映射启用的字段类型,请参阅MongoDB搜索字段类型。

示例索引配置的示例,请参阅示例

mappings.dynamic.typeset

对象

Optional

引用 typeSets对象的名称,该对象包含要自动递归索引的字段类型列表。

mappings.dynamic 布尔标志互斥。

重要

可配置的动态映射处于预览状态。在预览期间,功能和相应的文档可能随时更改。要学习;了解详情,请参阅 预览功能。

mappings.fields

文档

可选的

指定要索引的字段。仅当动态映射为 false 时才需要。

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

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

searchAnalyzer

字符串

Optional

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

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

numPartitions

int

Optional

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

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

storedSource

布尔值或存储的源定义

Optional

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

  • true— 存储所有字段

  • false— 不存储任何字段

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

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

  • MongoDB 7.0+

如果省略,则默认值为 false

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

synonyms

Optional

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

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

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

typeSets

对象数组

Optional

指定要在此索引中用于动态映射的 typeSet。

typeSets.[n].name

字符串

必需

指定 typeSet 配置的名称。

typeSets.[n].types

对象数组

必需

指定要使用动态映射自动索引的字段类型(每个对象一个)。

typeSets.[n].types.[n].type

字符串

必需

指定要自动索引的字段类型。要学习;了解可以为动态映射配置的字段类型的详情,请参阅配置typeSet

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

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

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

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

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

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

后退

管理索引

在此页面上