Review Atlas Search Index Syntax
On this page
Atlas Search can index data in different ways. When you define an Atlas Search index, you can specify a particular analyzer or multiple analyzers to index certain fields. To learn more, see Process Data with Analyzers. You can also index certain fields and omit others, or you can dynamically index all the fields in a collection. To learn more, see Define Field Mappings. You can define Atlas Search indexes through the Atlas User Interface, Atlas Search API, and Atlas CLI.
This page describes the JSON syntax and fields for an Atlas Search index.
Limitation
- Atlas Search doesn't index numeric, date, or boolean values if they are part of an array or if they are inside of a document in an array.
- Atlas Search doesn't support indexing array of string values for autocompletion.
Syntax
1 { 2 "name": "<index-name>", 3 "analyzer": "<analyzer-for-index>", 4 "searchAnalyzer": "<analyzer-for-query>", 5 "mappings": { 6 "dynamic": <boolean>, 7 "fields": { <field-definition> } 8 }, 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
Options
Field | Type | Necessity | Description |
---|---|---|---|
analyzer | string | Optional | Specifies the analyzer to apply to
string fields when indexing. If you set this only at the top and
do not specify an analyzer for the fields in the index
definition, Atlas Search applies this analyzer to all the fields. To
use a different analyzer for each field, you must specify a
different analyzer for the field. If omitted, defaults to
Standard Analyzer. |
analyzers | array of Custom Analyzers | Optional | Specifies the Custom Analyzers to use in this index. |
mappings | Required | Specifies how to index fields at different paths for this
index. | |
mappings.dynamic | boolean | Optional | Enables or disables dynamic mapping of fields for this index. If set to
If set to If omitted, defaults to Important Atlas indexes all fields in a To learn more, see index configuration example. |
mappings.fields | document | Conditional | Required only if dynamic mapping is disabled. Specifies the fields that you would like to index. To learn more, see Define Field Mappings. |
name | string | Optional | Specifies a name for the index. In each namespace, names of all indexes in
the namespace must be unique. If omitted, defaults to
Note If you name your index |
searchAnalyzer | string | Optional | Specifies the analyzer to apply to query
text before searching with it. If omitted, defaults to
Standard Analyzer. |
storedSource | boolean or Stored Source Definition | Optional | Note The Atlas Search index storedSource
option and Specifies fields in the documents to store for query-time look-ups using the returnedStoredSource option. You can store fields of all BSON Data Types on Atlas Search. Value can be one of the following:
If omitted, defaults to Note
|
synonyms | array of Synonym Mapping Definition | Optional | Synonym mappings to use in your index. To learn more, see
Define Synonym Mappings in Your Atlas Search Index. |