Create or replace an index definition
Sends a definition in full, replacing any previous definition. Any setting the body omits is removed. Repeating the request produces the same outcome.
The target of the request depends on the name format. books creates the index with an initial generation named 1, or updates the definition of the live generation; books@2 creates that generation under an existing index, or updates its definition. A newly created generation contains no documents and is not live; the index continues serving from the previous live generation until actions/promote is called, and PUT books@2 on an index that does not exist returns 404.
When the target generation already holds documents, a request is refused with 409 and index:definition:incompatible if the new definition changes how documents are indexed, such as enabling a usage on an existing field, changing an analyzer chain, editing a synonym set, or changing type, primaryKey, or multiple. The response includes one detail item per difference, each with the path of the field that caused it. Adding or removing a field, disabling a usage, and changing stored, source, metadata, ranking, or search-time settings are accepted.
Requests run on the node that writes the index; a request received by another node is forwarded there.
Path parameters
namestringrequiredbooks@2.Query parameters
allowStaleDocumentsboolean- Default
- false
reindexstringauto also needs indexes.promote, because the job it starts promotes the generation it filled; manual needs only indexes.write.- Values
- "auto", "manual"
Headers
If-MatchstringETag header. * asks only that the index exists. Several versions may be given, separated by commas, and the header is satisfied while the stored version is one of them; versions are compared exactly, so a weak tag (W/"...") matches none. An index that does not exist answers 404, and a version that no longer matches answers 412 instead of overwriting intermediate changes.Body
What an index contains and how it can be searched. A definition is the state a caller wants: it is sent in full and anything left out is removed. Observed state, such as whether the index is usable, is reported separately under status.
sourceSourcefull retains the entire document, enabling full document retrieval and reindexing from the index itself. none retains only fields configured as stored. Changing this setting applies to documents indexed after the update.- Default
- "full"
- Values
- "full", "none"
metadatamap of string1 property
<key>stringfieldsmap of FieldDefinition*, which defines multiple fields at once; a name never contains a dot, which addresses fields inside object fields. The wildcard matches exactly one name. Explicit definitions take precedence, and the longest literal prefix wins among multiple wildcard patterns.1 property
<key>FieldDefinitiontype selects the field type and the properties available on it. Field usages are opt-in: adding an empty configuration object enables a usage with engine defaults, and only explicitly configured properties are stored, preserving default values across engine updates. See Field types.Example
{ "type": "string", "stored": true, "filter": {}, "matching": { "highlight": {} }}10 types
StringFieldDefinitiontype: "string"string.Example
{ "type": "string", "stored": true, "filter": {}, "matching": { "highlight": {} }}roleRole- Values
- "id", "title", "description", "tag", "path", "code", "timestamp", "geo"
primaryKeybooleanrequired and cannot be multiple, locale-specific, or wildcard fields.- Default
- false
requiredbooleantrue, the engine rejects documents that lack a value for this field.- Default
- false
multiplebooleantrue, the field accepts multiple values in a single document. If false, the engine rejects documents containing multiple values for the field.- Default
- false
storedbooleantrue, the engine stores field values to return in search results. This setting applies only when source is set to none, as documents are otherwise preserved in full.- Default
- false
localesLocaleslocales, configuring {} gives the field every declared locale, and only narrows the field to a subset of those locales.Example
{ "defaultLocale": "sv", "locales": [ "en", "de" ]}4 properties
defaultLocalestringlocales, this property defaults to the defaultLocale of the index."sv"localesstring[]locales, which narrows a field with only instead. Reading an index definition back always returns this list on each field.onlystring[]locales. If omitted, the field holds all declared locales. Every tag must be one the index declares, and the list must contain the default locale of the field. The engine expands this property into defaultLocale and locales before storing the index definition, so reading a definition back returns those properties instead.fallbackFallbacklocaleFallback. Only evaluated on an index that declares a fallback; setting enabled on an index without fallback configuration is rejected.- Default
- "enabled"
- Values
- "enabled", "disabled"
filterFilterUsage{}sortSortUsageExample
{ "collation": "locale", "missing": "last"}2 properties
collationCollation- Default
- "locale"
- Values
- "binary", "locale"
missingMissing- Default
- "last"
- Values
- "first", "last"
facetFacetUsage{}keywordKeywordExample
{ "caseFolding": true}1 property
caseFoldingbooleantrue, folds case before values are compared, allowing filters on Fiction to match fiction.- Default
- true
matchingTextUsageExample
{ "weight": 3, "highlight": {}, "typoTolerance": {}, "lengthNormalization": "strong"}7 properties
analyzerAnalyzerDefinitionExample
{ "preset": "full_text"}3 properties
presetPreset- Values
- "preserve_terms", "full_text"
customCustomExample
{ "charFilters": [ { "htmlStrip": {} } ], "tokenizer": { "icu": {} }, "filters": [ { "normalize": {} }, { "stemming": { "locale": "sv" } } ]}3 properties
charFiltersCharFilter[]Example
{ "htmlStrip": {}}tokenizerTokenizerExample
{ "icu": {}}filtersTokenFilter[]Example
{ "normalize": {}}namedstringresources in the index definition. Used to share analyzer configurations across fields. Validation fails if the specified name does not exist under resources."prose"weightnumber- Default
- 1
- Format
- float
highlightHighlightUsagestored property. Highlighting targets matching when defined; highlight on autocomplete takes effect only when matching is omitted.{}typoToleranceTypoToleranceExample
{ "minLengthOneTypo": 5, "minLengthTwoTypos": 9, "prefixLength": 1}4 properties
minLengthOneTypointeger- Default
- 5
- Format
- int32
minLengthTwoTyposintegerautocomplete, two typos are permitted only when explicitly configured.- Default
- 9
- Format
- int32
prefixLengthinteger- Default
- 1
- Format
- int32
numbersNumbers{}decompoundDecompoundanalyzer define their own decompounding behavior. See Compound words.- Values
- "none"
exactExactExample
{ "boost": 2}1 property
boostnumber- Default
- 2
- Format
- float
lengthNormalizationLengthNormalization- Default
- "moderate"
- Values
- "none", "moderate", "strong"
autocompleteTextUsageautocomplete does not support phrase matching.Example
{ "weight": 3, "highlight": {}, "typoTolerance": {}, "lengthNormalization": "strong"}7 properties
analyzerAnalyzerDefinitionExample
{ "preset": "full_text"}3 properties
presetPreset- Values
- "preserve_terms", "full_text"
customCustomExample
{ "charFilters": [ { "htmlStrip": {} } ], "tokenizer": { "icu": {} }, "filters": [ { "normalize": {} }, { "stemming": { "locale": "sv" } } ]}3 properties
charFiltersCharFilter[]Example
{ "htmlStrip": {}}tokenizerTokenizerExample
{ "icu": {}}filtersTokenFilter[]Example
{ "normalize": {}}namedstringresources in the index definition. Used to share analyzer configurations across fields. Validation fails if the specified name does not exist under resources."prose"weightnumber- Default
- 1
- Format
- float
highlightHighlightUsagestored property. Highlighting targets matching when defined; highlight on autocomplete takes effect only when matching is omitted.{}typoToleranceTypoToleranceExample
{ "minLengthOneTypo": 5, "minLengthTwoTypos": 9, "prefixLength": 1}4 properties
minLengthOneTypointeger- Default
- 5
- Format
- int32
minLengthTwoTyposintegerautocomplete, two typos are permitted only when explicitly configured.- Default
- 9
- Format
- int32
prefixLengthinteger- Default
- 1
- Format
- int32
numbersNumbers{}decompoundDecompoundanalyzer define their own decompounding behavior. See Compound words.- Values
- "none"
exactExactExample
{ "boost": 2}1 property
boostnumber- Default
- 2
- Format
- float
lengthNormalizationLengthNormalization- Default
- "moderate"
- Values
- "none", "moderate", "strong"
hierarchyHierarchyMen/Shoes/Running). Facets on hierarchy fields return nested counts per level, and the under matcher filters to a level and all sub-levels.Example
{ "separator": "/"}1 property
separatorstring- Default
- "/"
BooleanFieldDefinitiontype: "boolean"true or false). A boolean has nothing to analyze, so filtering is the only way to search it.Example
{ "type": "boolean", "filter": {}}primaryKeybooleanrequired and cannot be multiple, locale-specific, or wildcard fields.- Default
- false
requiredbooleantrue, the engine rejects documents that lack a value for this field.- Default
- false
multiplebooleantrue, the field accepts multiple values in a single document. If false, the engine rejects documents containing multiple values for the field.- Default
- false
storedbooleantrue, the engine stores field values to return in search results. This setting applies only when source is set to none, as documents are otherwise preserved in full.- Default
- false
localesLocaleslocales, configuring {} gives the field every declared locale, and only narrows the field to a subset of those locales.Example
{ "defaultLocale": "sv", "locales": [ "en", "de" ]}4 properties
defaultLocalestringlocales, this property defaults to the defaultLocale of the index."sv"localesstring[]locales, which narrows a field with only instead. Reading an index definition back always returns this list on each field.onlystring[]locales. If omitted, the field holds all declared locales. Every tag must be one the index declares, and the list must contain the default locale of the field. The engine expands this property into defaultLocale and locales before storing the index definition, so reading a definition back returns those properties instead.fallbackFallbacklocaleFallback. Only evaluated on an index that declares a fallback; setting enabled on an index without fallback configuration is rejected.- Default
- "enabled"
- Values
- "enabled", "disabled"
filterFilterUsage{}sortSortUsageExample
{ "collation": "locale", "missing": "last"}2 properties
collationCollation- Default
- "locale"
- Values
- "binary", "locale"
missingMissing- Default
- "last"
- Values
- "first", "last"
facetFacetUsage{}VectorFieldDefinitiontype: "vector"knn search clause. Vector fields do not support filter, sort, facet, or locales. Vectors must be supplied in document payloads. See Search by vector.Example
{ "type": "vector", "dimensions": 1536, "similarity": "cosine"}primaryKeybooleanrequired and cannot be multiple, locale-specific, or wildcard fields.- Default
- false
requiredbooleantrue, the engine rejects documents that lack a value for this field.- Default
- false
multiplebooleantrue, the field accepts multiple values in a single document. If false, the engine rejects documents containing multiple values for the field.- Default
- false
storedbooleantrue, the engine stores field values to return in search results. This setting applies only when source is set to none, as documents are otherwise preserved in full.- Default
- false
localesLocalesExample
{ "defaultLocale": "sv", "locales": [ "en", "de" ]}4 properties
defaultLocalestringlocales, this property defaults to the defaultLocale of the index."sv"localesstring[]locales, which narrows a field with only instead. Reading an index definition back always returns this list on each field.onlystring[]locales. If omitted, the field holds all declared locales. Every tag must be one the index declares, and the list must contain the default locale of the field. The engine expands this property into defaultLocale and locales before storing the index definition, so reading a definition back returns those properties instead.fallbackFallbacklocaleFallback. Only evaluated on an index that declares a fallback; setting enabled on an index without fallback configuration is rejected.- Default
- "enabled"
- Values
- "enabled", "disabled"
filterFilterUsageknn search clause; setting it is rejected.{}sortSortUsageExample
{ "collation": "locale", "missing": "last"}2 properties
collationCollation- Default
- "locale"
- Values
- "binary", "locale"
missingMissing- Default
- "last"
- Values
- "first", "last"
dimensionsintegerrequired- Format
- int32
1536similaritySimilaritydot_product requires unit-length normalized vectors.- Default
- "cosine"
- Values
- "cosine", "dot_product", "euclidean"
hnswHnswExample
{ "m": 16, "efConstruction": 100}2 properties
minteger- Format
- int32
efConstructioninteger- Format
- int32
quantizationQuantization- Default
- "none"
- Values
- "none", "int8", "int4"
Int32FieldDefinitiontype: "int32"Example
{ "type": "int32", "filter": {}, "validation": { "min": 0 }}primaryKeybooleanrequired and cannot be multiple, locale-specific, or wildcard fields.- Default
- false
requiredbooleantrue, the engine rejects documents that lack a value for this field.- Default
- false
multiplebooleantrue, the field accepts multiple values in a single document. If false, the engine rejects documents containing multiple values for the field.- Default
- false
storedbooleantrue, the engine stores field values to return in search results. This setting applies only when source is set to none, as documents are otherwise preserved in full.- Default
- false
localesLocaleslocales, configuring {} gives the field every declared locale, and only narrows the field to a subset of those locales.Example
{ "defaultLocale": "sv", "locales": [ "en", "de" ]}4 properties
defaultLocalestringlocales, this property defaults to the defaultLocale of the index."sv"localesstring[]locales, which narrows a field with only instead. Reading an index definition back always returns this list on each field.onlystring[]locales. If omitted, the field holds all declared locales. Every tag must be one the index declares, and the list must contain the default locale of the field. The engine expands this property into defaultLocale and locales before storing the index definition, so reading a definition back returns those properties instead.fallbackFallbacklocaleFallback. Only evaluated on an index that declares a fallback; setting enabled on an index without fallback configuration is rejected.- Default
- "enabled"
- Values
- "enabled", "disabled"
filterFilterUsage{}sortSortUsageExample
{ "collation": "locale", "missing": "last"}2 properties
collationCollation- Default
- "locale"
- Values
- "binary", "locale"
missingMissing- Default
- "last"
- Values
- "first", "last"
facetFacetUsage{}signalSignalUsagefilter, facet, stored, multiple, locales or primaryKey. A document indexed without a value keeps the value the field holds. See Signal fields.{}validationInt32ValidationExample
{ "min": 0, "max": 100}2 properties
mininteger- Format
- int32
0maxinteger- Format
- int32
unitstringSEK, a CLDR unit identifier such as kilogram or gigabyte, or any other text matched as written. A search in user mode reads a number typed next to the unit, or next to a comparative word such as under, as a filter on this field. Changing the unit does not require a reindex. See Reading numbers and units."SEK"Int64FieldDefinitiontype: "int64"Example
{ "type": "int64", "filter": {}, "sort": {}}primaryKeybooleanrequired and cannot be multiple, locale-specific, or wildcard fields.- Default
- false
requiredbooleantrue, the engine rejects documents that lack a value for this field.- Default
- false
multiplebooleantrue, the field accepts multiple values in a single document. If false, the engine rejects documents containing multiple values for the field.- Default
- false
storedbooleantrue, the engine stores field values to return in search results. This setting applies only when source is set to none, as documents are otherwise preserved in full.- Default
- false
localesLocaleslocales, configuring {} gives the field every declared locale, and only narrows the field to a subset of those locales.Example
{ "defaultLocale": "sv", "locales": [ "en", "de" ]}4 properties
defaultLocalestringlocales, this property defaults to the defaultLocale of the index."sv"localesstring[]locales, which narrows a field with only instead. Reading an index definition back always returns this list on each field.onlystring[]locales. If omitted, the field holds all declared locales. Every tag must be one the index declares, and the list must contain the default locale of the field. The engine expands this property into defaultLocale and locales before storing the index definition, so reading a definition back returns those properties instead.fallbackFallbacklocaleFallback. Only evaluated on an index that declares a fallback; setting enabled on an index without fallback configuration is rejected.- Default
- "enabled"
- Values
- "enabled", "disabled"
filterFilterUsage{}sortSortUsageExample
{ "collation": "locale", "missing": "last"}2 properties
collationCollation- Default
- "locale"
- Values
- "binary", "locale"
missingMissing- Default
- "last"
- Values
- "first", "last"
facetFacetUsage{}signalSignalUsagefilter, facet, stored, multiple, locales or primaryKey. A document indexed without a value keeps the value the field holds. See Signal fields.{}validationInt64ValidationExample
{ "min": 0, "max": 1099511627776}2 properties
mininteger- Format
- int64
maxinteger- Format
- int64
unitstringSEK, a CLDR unit identifier such as kilogram or gigabyte, or any other text matched as written. A search in user mode reads a number typed next to the unit, or next to a comparative word such as under, as a filter on this field. Changing the unit does not require a reindex. See Reading numbers and units."gigabyte"FloatFieldDefinitiontype: "float"Example
{ "type": "float", "filter": {}, "sort": {}}primaryKeybooleanrequired and cannot be multiple, locale-specific, or wildcard fields.- Default
- false
requiredbooleantrue, the engine rejects documents that lack a value for this field.- Default
- false
multiplebooleantrue, the field accepts multiple values in a single document. If false, the engine rejects documents containing multiple values for the field.- Default
- false
storedbooleantrue, the engine stores field values to return in search results. This setting applies only when source is set to none, as documents are otherwise preserved in full.- Default
- false
localesLocaleslocales, configuring {} gives the field every declared locale, and only narrows the field to a subset of those locales.Example
{ "defaultLocale": "sv", "locales": [ "en", "de" ]}4 properties
defaultLocalestringlocales, this property defaults to the defaultLocale of the index."sv"localesstring[]locales, which narrows a field with only instead. Reading an index definition back always returns this list on each field.onlystring[]locales. If omitted, the field holds all declared locales. Every tag must be one the index declares, and the list must contain the default locale of the field. The engine expands this property into defaultLocale and locales before storing the index definition, so reading a definition back returns those properties instead.fallbackFallbacklocaleFallback. Only evaluated on an index that declares a fallback; setting enabled on an index without fallback configuration is rejected.- Default
- "enabled"
- Values
- "enabled", "disabled"
filterFilterUsage{}sortSortUsageExample
{ "collation": "locale", "missing": "last"}2 properties
collationCollation- Default
- "locale"
- Values
- "binary", "locale"
missingMissing- Default
- "last"
- Values
- "first", "last"
facetFacetUsage{}signalSignalUsagefilter, facet, stored, multiple, locales or primaryKey. A document indexed without a value keeps the value the field holds. See Signal fields.{}validationFloatValidationExample
{ "min": 0, "max": 5}2 properties
minnumber- Format
- float
maxnumber- Format
- float
unitstringSEK, a CLDR unit identifier such as kilogram or gigabyte, or any other text matched as written. A search in user mode reads a number typed next to the unit, or next to a comparative word such as under, as a filter on this field. Changing the unit does not require a reindex. See Reading numbers and units."kilogram"DoubleFieldDefinitiontype: "double"Example
{ "type": "double", "filter": {}, "sort": {}}primaryKeybooleanrequired and cannot be multiple, locale-specific, or wildcard fields.- Default
- false
requiredbooleantrue, the engine rejects documents that lack a value for this field.- Default
- false
multiplebooleantrue, the field accepts multiple values in a single document. If false, the engine rejects documents containing multiple values for the field.- Default
- false
storedbooleantrue, the engine stores field values to return in search results. This setting applies only when source is set to none, as documents are otherwise preserved in full.- Default
- false
localesLocaleslocales, configuring {} gives the field every declared locale, and only narrows the field to a subset of those locales.Example
{ "defaultLocale": "sv", "locales": [ "en", "de" ]}4 properties
defaultLocalestringlocales, this property defaults to the defaultLocale of the index."sv"localesstring[]locales, which narrows a field with only instead. Reading an index definition back always returns this list on each field.onlystring[]locales. If omitted, the field holds all declared locales. Every tag must be one the index declares, and the list must contain the default locale of the field. The engine expands this property into defaultLocale and locales before storing the index definition, so reading a definition back returns those properties instead.fallbackFallbacklocaleFallback. Only evaluated on an index that declares a fallback; setting enabled on an index without fallback configuration is rejected.- Default
- "enabled"
- Values
- "enabled", "disabled"
filterFilterUsage{}sortSortUsageExample
{ "collation": "locale", "missing": "last"}2 properties
collationCollation- Default
- "locale"
- Values
- "binary", "locale"
missingMissing- Default
- "last"
- Values
- "first", "last"
facetFacetUsage{}signalSignalUsagefilter, facet, stored, multiple, locales or primaryKey. A document indexed without a value keeps the value the field holds. See Signal fields.{}validationDoubleValidationExample
{ "min": 0, "max": 1000}2 properties
minnumber- Format
- double
maxnumber- Format
- double
unitstringSEK, a CLDR unit identifier such as kilogram or gigabyte, or any other text matched as written. A search in user mode reads a number typed next to the unit, or next to a comparative word such as under, as a filter on this field. Changing the unit does not require a reindex. See Reading numbers and units."EUR"TimestampFieldDefinitiontype: "timestamp"Z or +02:00). Timestamps are stored and compared at millisecond precision. Values representing the same instant are identical for filtering and sorting; search results return the original string format provided during ingestion. Documents containing timestamps without timezone offsets are rejected.Example
{ "type": "timestamp", "filter": {}, "sort": {}}roleRole- Values
- "id", "title", "description", "tag", "path", "code", "timestamp", "geo"
primaryKeybooleanrequired and cannot be multiple, locale-specific, or wildcard fields.- Default
- false
requiredbooleantrue, the engine rejects documents that lack a value for this field.- Default
- false
multiplebooleantrue, the field accepts multiple values in a single document. If false, the engine rejects documents containing multiple values for the field.- Default
- false
storedbooleantrue, the engine stores field values to return in search results. This setting applies only when source is set to none, as documents are otherwise preserved in full.- Default
- false
localesLocaleslocales, configuring {} gives the field every declared locale, and only narrows the field to a subset of those locales.Example
{ "defaultLocale": "sv", "locales": [ "en", "de" ]}4 properties
defaultLocalestringlocales, this property defaults to the defaultLocale of the index."sv"localesstring[]locales, which narrows a field with only instead. Reading an index definition back always returns this list on each field.onlystring[]locales. If omitted, the field holds all declared locales. Every tag must be one the index declares, and the list must contain the default locale of the field. The engine expands this property into defaultLocale and locales before storing the index definition, so reading a definition back returns those properties instead.fallbackFallbacklocaleFallback. Only evaluated on an index that declares a fallback; setting enabled on an index without fallback configuration is rejected.- Default
- "enabled"
- Values
- "enabled", "disabled"
filterFilterUsage{}sortSortUsageExample
{ "collation": "locale", "missing": "last"}2 properties
collationCollation- Default
- "locale"
- Values
- "binary", "locale"
missingMissing- Default
- "last"
- Values
- "first", "last"
facetFacetUsage{}GeoPointFieldDefinitiontype: "geo_point"lat and lon coordinates. Locations are searched by distance rather than exact value: filter enables the distance matcher, and sort enables ordering by distance from an origin, nearest first.Example
{ "type": "geo_point", "filter": {}, "sort": {}}roleRole- Values
- "id", "title", "description", "tag", "path", "code", "timestamp", "geo"
primaryKeybooleanrequired and cannot be multiple, locale-specific, or wildcard fields.- Default
- false
requiredbooleantrue, the engine rejects documents that lack a value for this field.- Default
- false
multiplebooleantrue, the field accepts multiple values in a single document. If false, the engine rejects documents containing multiple values for the field.- Default
- false
storedbooleantrue, the engine stores field values to return in search results. This setting applies only when source is set to none, as documents are otherwise preserved in full.- Default
- false
localesLocaleslocales, configuring {} gives the field every declared locale, and only narrows the field to a subset of those locales.Example
{ "defaultLocale": "sv", "locales": [ "en", "de" ]}4 properties
defaultLocalestringlocales, this property defaults to the defaultLocale of the index."sv"localesstring[]locales, which narrows a field with only instead. Reading an index definition back always returns this list on each field.onlystring[]locales. If omitted, the field holds all declared locales. Every tag must be one the index declares, and the list must contain the default locale of the field. The engine expands this property into defaultLocale and locales before storing the index definition, so reading a definition back returns those properties instead.fallbackFallbacklocaleFallback. Only evaluated on an index that declares a fallback; setting enabled on an index without fallback configuration is rejected.- Default
- "enabled"
- Values
- "enabled", "disabled"
sortSortUsageExample
{ "collation": "locale", "missing": "last"}2 properties
collationCollation- Default
- "locale"
- Values
- "binary", "locale"
missingMissing- Default
- "last"
- Values
- "first", "last"
facetFacetUsage{}"object"variants.price). An object field cannot configure filter, sort, facet, locales, or stored on itself. Child fields can be objects in turn, though a nested array cannot contain another nested array. An array of objects can specify a key to identify each object value. Object fields are returned in search results through the preserved document source; a stored child field below single objects also answers when the index keeps none. See object.Example
{ "type": "object", "multiple": true, "mode": "nested", "key": "sku", "fields": { "sku": { "type": "string", "required": true, "filter": {} }, "color": { "type": "string", "filter": {} }, "price": { "type": "double", "filter": {} } }}primaryKeybooleanrequiredbooleantrue, the engine rejects documents that lack a value for this field.- Default
- false
multiplebooleantrue, the field holds a list of object values, and mode is required. Single object fields are always indexed as flattened objects.- Default
- false
storedbooleanlocalesLocalesExample
{ "defaultLocale": "sv", "locales": [ "en", "de" ]}4 properties
defaultLocalestringlocales, this property defaults to the defaultLocale of the index."sv"localesstring[]locales, which narrows a field with only instead. Reading an index definition back always returns this list on each field.onlystring[]locales. If omitted, the field holds all declared locales. Every tag must be one the index declares, and the list must contain the default locale of the field. The engine expands this property into defaultLocale and locales before storing the index definition, so reading a definition back returns those properties instead.fallbackFallbacklocaleFallback. Only evaluated on an index that declares a fallback; setting enabled on an index without fallback configuration is rejected.- Default
- "enabled"
- Values
- "enabled", "disabled"
sortSortUsageExample
{ "collation": "locale", "missing": "last"}2 properties
collationCollation- Default
- "locale"
- Values
- "binary", "locale"
missingMissing- Default
- "last"
- Values
- "first", "last"
modeModemultiple is true (index:field:object:mode_required) and rejected when it is not (index:field:object:mode_without_multiple).- Values
- "nested", "flattened"
keystringvariants[V-2]) and populates key on search value hits. Requires multiple: true (index:field:object:key_without_multiple). Must name a field defined in fields (index:field:object:key_unknown) that is required, not multiple, and of type string, int32, or int64 (index:field:object:key_invalid). Duplicate key values within a document are rejected with document:object_key_duplicate.fieldsmap of FieldDefinitionobject type included - objects nest, though a nested array cannot contain another nested array (index:field:object:nested_in_nested). What a child field may configure follows from where it sits: sort and stored are rejected below a flattened array (index:field:object:flattened_sort_unsupported, index:field:object:flattened_stored_unsupported), and primaryKey is rejected inside any object (index:field:object:inner_usage_unsupported). Below a nested array stored and highlight work - highlighted fragments come back on value hits. locales works everywhere.1 property
<key>FieldDefinitiontype selects the field type and the properties available on it. Field usages are opt-in: adding an empty configuration object enables a usage with engine defaults, and only explicitly configured properties are stored, preserving default values across engine updates. See Field types.Example
{ "type": "string", "stored": true, "filter": {}, "matching": { "highlight": {} }}rankingRankingExample
{ "tieBreakers": [ { "field": "sales", "direction": "descending" } ], "signals": [ { "field": "purchases", "saturation": { "pivot": 50 }, "weight": 0.5 } ]}2 properties
tieBreakersTieBreaker[]sort enabled.Example
{ "field": "sales", "direction": "descending"}2 properties
fieldstringrequiredsort enabled."sales"directionDirectiondescending.- Default
- "descending"
- Values
- "ascending", "descending"
signalsSignalDefinition[]signals adds to these rules or replaces them based on signalsMode.Example
{ "field": "purchases", "saturation": { "pivot": 50 }, "weight": 0.5}5 properties
fieldstringrequired"purchases"saturationRankingSaturationint32, int64, float and double fields.Example
{ "pivot": 50}1 property
pivotnumberrequired0.- Format
- double
50decayRankingDecaytimestamp fields.Example
{ "halfLife": 604800}1 property
halfLifeintegerrequired0.- Format
- int64
604800linearRankingLinearvalue / ceiling held between 0 and 1. For int32, int64, float and double fields holding a score computed elsewhere, such as an engagement score between 0 and 1.Example
{ "ceiling": 1}1 property
ceilingnumberrequired0.- Format
- double
1weightnumber1, a document at the top of the signal reaches twice the score of one holding no value at all.- Default
- 1
- Format
- float
resourcesResourcesExample
{ "analyzers": { "prose": { "preset": "full_text" } }, "stopwords": { "brands": [ "acme" ] }, "synonyms": { "cars": { "rules": [ { "equivalent": [ "car", "automobile" ] }, { "mapping": { "from": [ "ny" ], "to": [ "new york" ] } } ] } }}3 properties
analyzersmap of AnalyzerDefinition"analyzer": { "named": "..." }. Presets are expanded the same way as on a field.1 property
<key>AnalyzerDefinitionpreset, custom, or named. An analyzer chain describes the indexing process. The engine derives the query analyzer from the indexing chain. Components that select words by locale, such as stopwords and stemming, use the locale of the value being analyzed unless you specify a locale. See Analysis.Example
{ "preset": "full_text"}3 properties
presetPreset- Values
- "preserve_terms", "full_text"
customCustomExample
{ "charFilters": [ { "htmlStrip": {} } ], "tokenizer": { "icu": {} }, "filters": [ { "normalize": {} }, { "stemming": { "locale": "sv" } } ]}3 properties
charFiltersCharFilter[]Example
{ "htmlStrip": {}}3 properties
htmlStripHtmlStrip{}mappingMappingCharFilterExample
{ "mappings": { "&": " and " }}1 property
mappingsmap of stringrequiredpatternReplacePatternReplaceExample
{ "pattern": "\\s+", "replacement": " "}2 properties
patternstringrequiredreplacementstringrequiredtokenizerTokenizerExample
{ "icu": {}}4 properties
icuIcuTokenizer{}whitespaceWhitespaceTokenizer{}keywordKeywordTokenizer{}letterLetterTokenizer{}filtersTokenFilter[]Example
{ "normalize": {}}8 properties
normalizeNormalizeExample
{ "caseFolding": true}1 property
caseFoldingboolean- Default
- true
stopwordsStopwordsFilterExample
{ "locale": "sv"}3 properties
localestring"sv"wordsstring[]namedstringresources."brands"stemmingStemmingExample
{ "locale": "sv"}1 property
localestring"sv"asciiFoldingAsciiFoldingExample
{ "preserveOriginal": true}1 property
preserveOriginalboolean- Default
- false
edgeNgramEdgeNgramExample
{ "minGram": 1, "maxGram": 20}2 properties
minGraminteger- Default
- 1
- Format
- int32
maxGraminteger- Default
- 20
- Format
- int32
ngramNgramExample
{ "minGram": 3, "maxGram": 5}2 properties
minGraminteger- Format
- int32
maxGraminteger- Format
- int32
synonymsSynonymsFilterresources. Applied when a value is indexed, not when the text of a search is analyzed.Example
{ "named": "cars"}1 property
namedstringrequiredresources."cars"decompoundDecompoundFilterExample
{ "locale": "sv"}1 property
localestring"sv"namedstringresources in the index definition. Used to share analyzer configurations across fields. Validation fails if the specified name does not exist under resources."prose"stopwordsmap of string[]"stopwords": { "named": "..." }.1 property
<key>string[]synonymsmap of Synonyms"synonyms": { "named": "..." }.1 property
<key>SynonymsExample
{ "rules": [ { "equivalent": [ "car", "automobile" ] }, { "mapping": { "from": [ "ny" ], "to": [ "new york" ] } } ]}1 property
Example
{ "equivalent": [ "car", "automobile" ]}2 properties
equivalentstring[]mappingMappingfrom also match searches for any term in to, but not the reverse.Example
{ "from": [ "ny" ], "to": [ "new york" ]}2 properties
fromstring[]requiredtostring[]requiredlocalesIndexLocales"locales": {} to hold all declared locales, or narrows to fewer with "locales": { "only": [...] }. The engine expands the declaration onto each field before storing the index definition, so reading a definition back returns the locales on each field. If omitted, each field declares its own locales.Example
{ "defaultLocale": "en", "supported": [ "sv", "de" ]}2 properties
defaultLocalestringrequireddefaultLocale. This property is required whenever an index declares locales."en"supportedstring[]defaultLocale. A field can narrow to a subset of these supported locales and the default locale by using only.localeFallbackLocaleFallbackExample
{ "chain": [ "da", "en" ]}1 property
chainstring[]defaultLocale.Responses
ETag header.IndexInfo
An index together with the definition and status of one of its generations: the generation specified in the request, or the live generation if omitted. See Index resource.
namestring"products"generationstring"2"livebooleanversionstringETag header. Pass this value in the If-Match header on PUT requests to prevent overwriting concurrent updates."9f2c1a0b3d4e5f60"definitionIndexDefinitionExample
{ "fields": { "id": { "type": "string", "primaryKey": true, "required": true }, "name": { "type": "string", "matching": {}, "sort": {} }, "category": { "type": "string", "filter": {}, "facet": {} }, "price": { "type": "float", "filter": {}, "sort": {} }, "published": { "type": "boolean", "filter": {} } }}7 properties
sourceSourcefull retains the entire document, enabling full document retrieval and reindexing from the index itself. none retains only fields configured as stored. Changing this setting applies to documents indexed after the update.- Default
- "full"
- Values
- "full", "none"
metadatamap of string1 property
<key>stringfieldsmap of FieldDefinition*, which defines multiple fields at once; a name never contains a dot, which addresses fields inside object fields. The wildcard matches exactly one name. Explicit definitions take precedence, and the longest literal prefix wins among multiple wildcard patterns.1 property
<key>FieldDefinitiontype selects the field type and the properties available on it. Field usages are opt-in: adding an empty configuration object enables a usage with engine defaults, and only explicitly configured properties are stored, preserving default values across engine updates. See Field types.Example
{ "type": "string", "stored": true, "filter": {}, "matching": { "highlight": {} }}10 types
StringFieldDefinitiontype: "string"string.Example
{ "type": "string", "stored": true, "filter": {}, "matching": { "highlight": {} }}roleRole- Values
- "id", "title", "description", "tag", "path", "code", "timestamp", "geo"
primaryKeybooleanrequired and cannot be multiple, locale-specific, or wildcard fields.- Default
- false
requiredbooleantrue, the engine rejects documents that lack a value for this field.- Default
- false
multiplebooleantrue, the field accepts multiple values in a single document. If false, the engine rejects documents containing multiple values for the field.- Default
- false
storedbooleantrue, the engine stores field values to return in search results. This setting applies only when source is set to none, as documents are otherwise preserved in full.- Default
- false
localesLocaleslocales, configuring {} gives the field every declared locale, and only narrows the field to a subset of those locales.Example
{ "defaultLocale": "sv", "locales": [ "en", "de" ]}4 properties
defaultLocalestringlocales, this property defaults to the defaultLocale of the index."sv"localesstring[]locales, which narrows a field with only instead. Reading an index definition back always returns this list on each field.onlystring[]locales. If omitted, the field holds all declared locales. Every tag must be one the index declares, and the list must contain the default locale of the field. The engine expands this property into defaultLocale and locales before storing the index definition, so reading a definition back returns those properties instead.fallbackFallbacklocaleFallback. Only evaluated on an index that declares a fallback; setting enabled on an index without fallback configuration is rejected.- Default
- "enabled"
- Values
- "enabled", "disabled"
filterFilterUsage{}sortSortUsageExample
{ "collation": "locale", "missing": "last"}2 properties
collationCollation- Default
- "locale"
- Values
- "binary", "locale"
missingMissing- Default
- "last"
- Values
- "first", "last"
facetFacetUsage{}keywordKeywordExample
{ "caseFolding": true}1 property
caseFoldingbooleantrue, folds case before values are compared, allowing filters on Fiction to match fiction.- Default
- true
matchingTextUsageExample
{ "weight": 3, "highlight": {}, "typoTolerance": {}, "lengthNormalization": "strong"}7 properties
analyzerAnalyzerDefinitionExample
{ "preset": "full_text"}3 properties
presetPreset- Values
- "preserve_terms", "full_text"
customCustomExample
{ "charFilters": [ { "htmlStrip": {} } ], "tokenizer": { "icu": {} }, "filters": [ { "normalize": {} }, { "stemming": { "locale": "sv" } } ]}namedstringresources in the index definition. Used to share analyzer configurations across fields. Validation fails if the specified name does not exist under resources."prose"weightnumber- Default
- 1
- Format
- float
highlightHighlightUsagestored property. Highlighting targets matching when defined; highlight on autocomplete takes effect only when matching is omitted.{}typoToleranceTypoToleranceExample
{ "minLengthOneTypo": 5, "minLengthTwoTypos": 9, "prefixLength": 1}4 properties
minLengthOneTypointeger- Default
- 5
- Format
- int32
minLengthTwoTyposintegerautocomplete, two typos are permitted only when explicitly configured.- Default
- 9
- Format
- int32
prefixLengthinteger- Default
- 1
- Format
- int32
numbersNumbers{}decompoundDecompoundanalyzer define their own decompounding behavior. See Compound words.- Values
- "none"
exactExactExample
{ "boost": 2}1 property
boostnumber- Default
- 2
- Format
- float
lengthNormalizationLengthNormalization- Default
- "moderate"
- Values
- "none", "moderate", "strong"
autocompleteTextUsageautocomplete does not support phrase matching.Example
{ "weight": 3, "highlight": {}, "typoTolerance": {}, "lengthNormalization": "strong"}7 properties
analyzerAnalyzerDefinitionExample
{ "preset": "full_text"}3 properties
presetPreset- Values
- "preserve_terms", "full_text"
customCustomExample
{ "charFilters": [ { "htmlStrip": {} } ], "tokenizer": { "icu": {} }, "filters": [ { "normalize": {} }, { "stemming": { "locale": "sv" } } ]}namedstringresources in the index definition. Used to share analyzer configurations across fields. Validation fails if the specified name does not exist under resources."prose"weightnumber- Default
- 1
- Format
- float
highlightHighlightUsagestored property. Highlighting targets matching when defined; highlight on autocomplete takes effect only when matching is omitted.{}typoToleranceTypoToleranceExample
{ "minLengthOneTypo": 5, "minLengthTwoTypos": 9, "prefixLength": 1}4 properties
minLengthOneTypointeger- Default
- 5
- Format
- int32
minLengthTwoTyposintegerautocomplete, two typos are permitted only when explicitly configured.- Default
- 9
- Format
- int32
prefixLengthinteger- Default
- 1
- Format
- int32
numbersNumbers{}decompoundDecompoundanalyzer define their own decompounding behavior. See Compound words.- Values
- "none"
exactExactExample
{ "boost": 2}1 property
boostnumber- Default
- 2
- Format
- float
lengthNormalizationLengthNormalization- Default
- "moderate"
- Values
- "none", "moderate", "strong"
hierarchyHierarchyMen/Shoes/Running). Facets on hierarchy fields return nested counts per level, and the under matcher filters to a level and all sub-levels.Example
{ "separator": "/"}1 property
separatorstring- Default
- "/"
BooleanFieldDefinitiontype: "boolean"true or false). A boolean has nothing to analyze, so filtering is the only way to search it.Example
{ "type": "boolean", "filter": {}}primaryKeybooleanrequired and cannot be multiple, locale-specific, or wildcard fields.- Default
- false
requiredbooleantrue, the engine rejects documents that lack a value for this field.- Default
- false
multiplebooleantrue, the field accepts multiple values in a single document. If false, the engine rejects documents containing multiple values for the field.- Default
- false
storedbooleantrue, the engine stores field values to return in search results. This setting applies only when source is set to none, as documents are otherwise preserved in full.- Default
- false
localesLocaleslocales, configuring {} gives the field every declared locale, and only narrows the field to a subset of those locales.Example
{ "defaultLocale": "sv", "locales": [ "en", "de" ]}4 properties
defaultLocalestringlocales, this property defaults to the defaultLocale of the index."sv"localesstring[]locales, which narrows a field with only instead. Reading an index definition back always returns this list on each field.onlystring[]locales. If omitted, the field holds all declared locales. Every tag must be one the index declares, and the list must contain the default locale of the field. The engine expands this property into defaultLocale and locales before storing the index definition, so reading a definition back returns those properties instead.fallbackFallbacklocaleFallback. Only evaluated on an index that declares a fallback; setting enabled on an index without fallback configuration is rejected.- Default
- "enabled"
- Values
- "enabled", "disabled"
filterFilterUsage{}sortSortUsageExample
{ "collation": "locale", "missing": "last"}2 properties
collationCollation- Default
- "locale"
- Values
- "binary", "locale"
missingMissing- Default
- "last"
- Values
- "first", "last"
facetFacetUsage{}VectorFieldDefinitiontype: "vector"knn search clause. Vector fields do not support filter, sort, facet, or locales. Vectors must be supplied in document payloads. See Search by vector.Example
{ "type": "vector", "dimensions": 1536, "similarity": "cosine"}primaryKeybooleanrequired and cannot be multiple, locale-specific, or wildcard fields.- Default
- false
requiredbooleantrue, the engine rejects documents that lack a value for this field.- Default
- false
multiplebooleantrue, the field accepts multiple values in a single document. If false, the engine rejects documents containing multiple values for the field.- Default
- false
storedbooleantrue, the engine stores field values to return in search results. This setting applies only when source is set to none, as documents are otherwise preserved in full.- Default
- false
localesLocalesExample
{ "defaultLocale": "sv", "locales": [ "en", "de" ]}4 properties
defaultLocalestringlocales, this property defaults to the defaultLocale of the index."sv"localesstring[]locales, which narrows a field with only instead. Reading an index definition back always returns this list on each field.onlystring[]locales. If omitted, the field holds all declared locales. Every tag must be one the index declares, and the list must contain the default locale of the field. The engine expands this property into defaultLocale and locales before storing the index definition, so reading a definition back returns those properties instead.fallbackFallbacklocaleFallback. Only evaluated on an index that declares a fallback; setting enabled on an index without fallback configuration is rejected.- Default
- "enabled"
- Values
- "enabled", "disabled"
filterFilterUsageknn search clause; setting it is rejected.{}sortSortUsageExample
{ "collation": "locale", "missing": "last"}2 properties
collationCollation- Default
- "locale"
- Values
- "binary", "locale"
missingMissing- Default
- "last"
- Values
- "first", "last"
dimensionsintegerrequired- Format
- int32
1536similaritySimilaritydot_product requires unit-length normalized vectors.- Default
- "cosine"
- Values
- "cosine", "dot_product", "euclidean"
hnswHnswExample
{ "m": 16, "efConstruction": 100}2 properties
minteger- Format
- int32
efConstructioninteger- Format
- int32
quantizationQuantization- Default
- "none"
- Values
- "none", "int8", "int4"
Int32FieldDefinitiontype: "int32"Example
{ "type": "int32", "filter": {}, "validation": { "min": 0 }}primaryKeybooleanrequired and cannot be multiple, locale-specific, or wildcard fields.- Default
- false
requiredbooleantrue, the engine rejects documents that lack a value for this field.- Default
- false
multiplebooleantrue, the field accepts multiple values in a single document. If false, the engine rejects documents containing multiple values for the field.- Default
- false
storedbooleantrue, the engine stores field values to return in search results. This setting applies only when source is set to none, as documents are otherwise preserved in full.- Default
- false
localesLocaleslocales, configuring {} gives the field every declared locale, and only narrows the field to a subset of those locales.Example
{ "defaultLocale": "sv", "locales": [ "en", "de" ]}4 properties
defaultLocalestringlocales, this property defaults to the defaultLocale of the index."sv"localesstring[]locales, which narrows a field with only instead. Reading an index definition back always returns this list on each field.onlystring[]locales. If omitted, the field holds all declared locales. Every tag must be one the index declares, and the list must contain the default locale of the field. The engine expands this property into defaultLocale and locales before storing the index definition, so reading a definition back returns those properties instead.fallbackFallbacklocaleFallback. Only evaluated on an index that declares a fallback; setting enabled on an index without fallback configuration is rejected.- Default
- "enabled"
- Values
- "enabled", "disabled"
filterFilterUsage{}sortSortUsageExample
{ "collation": "locale", "missing": "last"}2 properties
collationCollation- Default
- "locale"
- Values
- "binary", "locale"
missingMissing- Default
- "last"
- Values
- "first", "last"
facetFacetUsage{}signalSignalUsagefilter, facet, stored, multiple, locales or primaryKey. A document indexed without a value keeps the value the field holds. See Signal fields.{}validationInt32ValidationExample
{ "min": 0, "max": 100}2 properties
mininteger- Format
- int32
0maxinteger- Format
- int32
unitstringSEK, a CLDR unit identifier such as kilogram or gigabyte, or any other text matched as written. A search in user mode reads a number typed next to the unit, or next to a comparative word such as under, as a filter on this field. Changing the unit does not require a reindex. See Reading numbers and units."SEK"Int64FieldDefinitiontype: "int64"Example
{ "type": "int64", "filter": {}, "sort": {}}primaryKeybooleanrequired and cannot be multiple, locale-specific, or wildcard fields.- Default
- false
requiredbooleantrue, the engine rejects documents that lack a value for this field.- Default
- false
multiplebooleantrue, the field accepts multiple values in a single document. If false, the engine rejects documents containing multiple values for the field.- Default
- false
storedbooleantrue, the engine stores field values to return in search results. This setting applies only when source is set to none, as documents are otherwise preserved in full.- Default
- false
localesLocaleslocales, configuring {} gives the field every declared locale, and only narrows the field to a subset of those locales.Example
{ "defaultLocale": "sv", "locales": [ "en", "de" ]}4 properties
defaultLocalestringlocales, this property defaults to the defaultLocale of the index."sv"localesstring[]locales, which narrows a field with only instead. Reading an index definition back always returns this list on each field.onlystring[]locales. If omitted, the field holds all declared locales. Every tag must be one the index declares, and the list must contain the default locale of the field. The engine expands this property into defaultLocale and locales before storing the index definition, so reading a definition back returns those properties instead.fallbackFallbacklocaleFallback. Only evaluated on an index that declares a fallback; setting enabled on an index without fallback configuration is rejected.- Default
- "enabled"
- Values
- "enabled", "disabled"
filterFilterUsage{}sortSortUsageExample
{ "collation": "locale", "missing": "last"}2 properties
collationCollation- Default
- "locale"
- Values
- "binary", "locale"
missingMissing- Default
- "last"
- Values
- "first", "last"
facetFacetUsage{}signalSignalUsagefilter, facet, stored, multiple, locales or primaryKey. A document indexed without a value keeps the value the field holds. See Signal fields.{}validationInt64ValidationExample
{ "min": 0, "max": 1099511627776}2 properties
mininteger- Format
- int64
maxinteger- Format
- int64
unitstringSEK, a CLDR unit identifier such as kilogram or gigabyte, or any other text matched as written. A search in user mode reads a number typed next to the unit, or next to a comparative word such as under, as a filter on this field. Changing the unit does not require a reindex. See Reading numbers and units."gigabyte"FloatFieldDefinitiontype: "float"Example
{ "type": "float", "filter": {}, "sort": {}}primaryKeybooleanrequired and cannot be multiple, locale-specific, or wildcard fields.- Default
- false
requiredbooleantrue, the engine rejects documents that lack a value for this field.- Default
- false
multiplebooleantrue, the field accepts multiple values in a single document. If false, the engine rejects documents containing multiple values for the field.- Default
- false
storedbooleantrue, the engine stores field values to return in search results. This setting applies only when source is set to none, as documents are otherwise preserved in full.- Default
- false
localesLocaleslocales, configuring {} gives the field every declared locale, and only narrows the field to a subset of those locales.Example
{ "defaultLocale": "sv", "locales": [ "en", "de" ]}4 properties
defaultLocalestringlocales, this property defaults to the defaultLocale of the index."sv"localesstring[]locales, which narrows a field with only instead. Reading an index definition back always returns this list on each field.onlystring[]locales. If omitted, the field holds all declared locales. Every tag must be one the index declares, and the list must contain the default locale of the field. The engine expands this property into defaultLocale and locales before storing the index definition, so reading a definition back returns those properties instead.fallbackFallbacklocaleFallback. Only evaluated on an index that declares a fallback; setting enabled on an index without fallback configuration is rejected.- Default
- "enabled"
- Values
- "enabled", "disabled"
filterFilterUsage{}sortSortUsageExample
{ "collation": "locale", "missing": "last"}2 properties
collationCollation- Default
- "locale"
- Values
- "binary", "locale"
missingMissing- Default
- "last"
- Values
- "first", "last"
facetFacetUsage{}signalSignalUsagefilter, facet, stored, multiple, locales or primaryKey. A document indexed without a value keeps the value the field holds. See Signal fields.{}validationFloatValidationExample
{ "min": 0, "max": 5}2 properties
minnumber- Format
- float
maxnumber- Format
- float
unitstringSEK, a CLDR unit identifier such as kilogram or gigabyte, or any other text matched as written. A search in user mode reads a number typed next to the unit, or next to a comparative word such as under, as a filter on this field. Changing the unit does not require a reindex. See Reading numbers and units."kilogram"DoubleFieldDefinitiontype: "double"Example
{ "type": "double", "filter": {}, "sort": {}}primaryKeybooleanrequired and cannot be multiple, locale-specific, or wildcard fields.- Default
- false
requiredbooleantrue, the engine rejects documents that lack a value for this field.- Default
- false
multiplebooleantrue, the field accepts multiple values in a single document. If false, the engine rejects documents containing multiple values for the field.- Default
- false
storedbooleantrue, the engine stores field values to return in search results. This setting applies only when source is set to none, as documents are otherwise preserved in full.- Default
- false
localesLocaleslocales, configuring {} gives the field every declared locale, and only narrows the field to a subset of those locales.Example
{ "defaultLocale": "sv", "locales": [ "en", "de" ]}4 properties
defaultLocalestringlocales, this property defaults to the defaultLocale of the index."sv"localesstring[]locales, which narrows a field with only instead. Reading an index definition back always returns this list on each field.onlystring[]locales. If omitted, the field holds all declared locales. Every tag must be one the index declares, and the list must contain the default locale of the field. The engine expands this property into defaultLocale and locales before storing the index definition, so reading a definition back returns those properties instead.fallbackFallbacklocaleFallback. Only evaluated on an index that declares a fallback; setting enabled on an index without fallback configuration is rejected.- Default
- "enabled"
- Values
- "enabled", "disabled"
filterFilterUsage{}sortSortUsageExample
{ "collation": "locale", "missing": "last"}2 properties
collationCollation- Default
- "locale"
- Values
- "binary", "locale"
missingMissing- Default
- "last"
- Values
- "first", "last"
facetFacetUsage{}signalSignalUsagefilter, facet, stored, multiple, locales or primaryKey. A document indexed without a value keeps the value the field holds. See Signal fields.{}validationDoubleValidationExample
{ "min": 0, "max": 1000}2 properties
minnumber- Format
- double
maxnumber- Format
- double
unitstringSEK, a CLDR unit identifier such as kilogram or gigabyte, or any other text matched as written. A search in user mode reads a number typed next to the unit, or next to a comparative word such as under, as a filter on this field. Changing the unit does not require a reindex. See Reading numbers and units."EUR"TimestampFieldDefinitiontype: "timestamp"Z or +02:00). Timestamps are stored and compared at millisecond precision. Values representing the same instant are identical for filtering and sorting; search results return the original string format provided during ingestion. Documents containing timestamps without timezone offsets are rejected.Example
{ "type": "timestamp", "filter": {}, "sort": {}}roleRole- Values
- "id", "title", "description", "tag", "path", "code", "timestamp", "geo"
primaryKeybooleanrequired and cannot be multiple, locale-specific, or wildcard fields.- Default
- false
requiredbooleantrue, the engine rejects documents that lack a value for this field.- Default
- false
multiplebooleantrue, the field accepts multiple values in a single document. If false, the engine rejects documents containing multiple values for the field.- Default
- false
storedbooleantrue, the engine stores field values to return in search results. This setting applies only when source is set to none, as documents are otherwise preserved in full.- Default
- false
localesLocaleslocales, configuring {} gives the field every declared locale, and only narrows the field to a subset of those locales.Example
{ "defaultLocale": "sv", "locales": [ "en", "de" ]}4 properties
defaultLocalestringlocales, this property defaults to the defaultLocale of the index."sv"localesstring[]locales, which narrows a field with only instead. Reading an index definition back always returns this list on each field.onlystring[]locales. If omitted, the field holds all declared locales. Every tag must be one the index declares, and the list must contain the default locale of the field. The engine expands this property into defaultLocale and locales before storing the index definition, so reading a definition back returns those properties instead.fallbackFallbacklocaleFallback. Only evaluated on an index that declares a fallback; setting enabled on an index without fallback configuration is rejected.- Default
- "enabled"
- Values
- "enabled", "disabled"
filterFilterUsage{}sortSortUsageExample
{ "collation": "locale", "missing": "last"}2 properties
collationCollation- Default
- "locale"
- Values
- "binary", "locale"
missingMissing- Default
- "last"
- Values
- "first", "last"
facetFacetUsage{}GeoPointFieldDefinitiontype: "geo_point"lat and lon coordinates. Locations are searched by distance rather than exact value: filter enables the distance matcher, and sort enables ordering by distance from an origin, nearest first.Example
{ "type": "geo_point", "filter": {}, "sort": {}}roleRole- Values
- "id", "title", "description", "tag", "path", "code", "timestamp", "geo"
primaryKeybooleanrequired and cannot be multiple, locale-specific, or wildcard fields.- Default
- false
requiredbooleantrue, the engine rejects documents that lack a value for this field.- Default
- false
multiplebooleantrue, the field accepts multiple values in a single document. If false, the engine rejects documents containing multiple values for the field.- Default
- false
storedbooleantrue, the engine stores field values to return in search results. This setting applies only when source is set to none, as documents are otherwise preserved in full.- Default
- false
localesLocaleslocales, configuring {} gives the field every declared locale, and only narrows the field to a subset of those locales.Example
{ "defaultLocale": "sv", "locales": [ "en", "de" ]}4 properties
defaultLocalestringlocales, this property defaults to the defaultLocale of the index."sv"localesstring[]locales, which narrows a field with only instead. Reading an index definition back always returns this list on each field.onlystring[]locales. If omitted, the field holds all declared locales. Every tag must be one the index declares, and the list must contain the default locale of the field. The engine expands this property into defaultLocale and locales before storing the index definition, so reading a definition back returns those properties instead.fallbackFallbacklocaleFallback. Only evaluated on an index that declares a fallback; setting enabled on an index without fallback configuration is rejected.- Default
- "enabled"
- Values
- "enabled", "disabled"
sortSortUsageExample
{ "collation": "locale", "missing": "last"}2 properties
collationCollation- Default
- "locale"
- Values
- "binary", "locale"
missingMissing- Default
- "last"
- Values
- "first", "last"
facetFacetUsage{}"object"variants.price). An object field cannot configure filter, sort, facet, locales, or stored on itself. Child fields can be objects in turn, though a nested array cannot contain another nested array. An array of objects can specify a key to identify each object value. Object fields are returned in search results through the preserved document source; a stored child field below single objects also answers when the index keeps none. See object.Example
{ "type": "object", "multiple": true, "mode": "nested", "key": "sku", "fields": { "sku": { "type": "string", "required": true, "filter": {} }, "color": { "type": "string", "filter": {} }, "price": { "type": "double", "filter": {} } }}primaryKeybooleanrequiredbooleantrue, the engine rejects documents that lack a value for this field.- Default
- false
multiplebooleantrue, the field holds a list of object values, and mode is required. Single object fields are always indexed as flattened objects.- Default
- false
storedbooleanlocalesLocalesExample
{ "defaultLocale": "sv", "locales": [ "en", "de" ]}4 properties
defaultLocalestringlocales, this property defaults to the defaultLocale of the index."sv"localesstring[]locales, which narrows a field with only instead. Reading an index definition back always returns this list on each field.onlystring[]locales. If omitted, the field holds all declared locales. Every tag must be one the index declares, and the list must contain the default locale of the field. The engine expands this property into defaultLocale and locales before storing the index definition, so reading a definition back returns those properties instead.fallbackFallbacklocaleFallback. Only evaluated on an index that declares a fallback; setting enabled on an index without fallback configuration is rejected.- Default
- "enabled"
- Values
- "enabled", "disabled"
sortSortUsageExample
{ "collation": "locale", "missing": "last"}2 properties
collationCollation- Default
- "locale"
- Values
- "binary", "locale"
missingMissing- Default
- "last"
- Values
- "first", "last"
modeModemultiple is true (index:field:object:mode_required) and rejected when it is not (index:field:object:mode_without_multiple).- Values
- "nested", "flattened"
keystringvariants[V-2]) and populates key on search value hits. Requires multiple: true (index:field:object:key_without_multiple). Must name a field defined in fields (index:field:object:key_unknown) that is required, not multiple, and of type string, int32, or int64 (index:field:object:key_invalid). Duplicate key values within a document are rejected with document:object_key_duplicate.fieldsmap of FieldDefinitionobject type included - objects nest, though a nested array cannot contain another nested array (index:field:object:nested_in_nested). What a child field may configure follows from where it sits: sort and stored are rejected below a flattened array (index:field:object:flattened_sort_unsupported, index:field:object:flattened_stored_unsupported), and primaryKey is rejected inside any object (index:field:object:inner_usage_unsupported). Below a nested array stored and highlight work - highlighted fragments come back on value hits. locales works everywhere.1 property
<key>FieldDefinitiontype selects the field type and the properties available on it. Field usages are opt-in: adding an empty configuration object enables a usage with engine defaults, and only explicitly configured properties are stored, preserving default values across engine updates. See Field types.Example
{ "type": "string", "stored": true, "filter": {}, "matching": { "highlight": {} }}rankingRankingExample
{ "tieBreakers": [ { "field": "sales", "direction": "descending" } ], "signals": [ { "field": "purchases", "saturation": { "pivot": 50 }, "weight": 0.5 } ]}2 properties
tieBreakersTieBreaker[]sort enabled.Example
{ "field": "sales", "direction": "descending"}2 properties
fieldstringrequiredsort enabled."sales"directionDirectiondescending.- Default
- "descending"
- Values
- "ascending", "descending"
signalsSignalDefinition[]signals adds to these rules or replaces them based on signalsMode.Example
{ "field": "purchases", "saturation": { "pivot": 50 }, "weight": 0.5}5 properties
fieldstringrequired"purchases"saturationRankingSaturationint32, int64, float and double fields.Example
{ "pivot": 50}1 property
pivotnumberrequired0.- Format
- double
50decayRankingDecaytimestamp fields.Example
{ "halfLife": 604800}1 property
halfLifeintegerrequired0.- Format
- int64
604800linearRankingLinearvalue / ceiling held between 0 and 1. For int32, int64, float and double fields holding a score computed elsewhere, such as an engagement score between 0 and 1.Example
{ "ceiling": 1}1 property
ceilingnumberrequired0.- Format
- double
1weightnumber1, a document at the top of the signal reaches twice the score of one holding no value at all.- Default
- 1
- Format
- float
resourcesResourcesExample
{ "analyzers": { "prose": { "preset": "full_text" } }, "stopwords": { "brands": [ "acme" ] }, "synonyms": { "cars": { "rules": [ { "equivalent": [ "car", "automobile" ] }, { "mapping": { "from": [ "ny" ], "to": [ "new york" ] } } ] } }}3 properties
analyzersmap of AnalyzerDefinition"analyzer": { "named": "..." }. Presets are expanded the same way as on a field.1 property
<key>AnalyzerDefinitionpreset, custom, or named. An analyzer chain describes the indexing process. The engine derives the query analyzer from the indexing chain. Components that select words by locale, such as stopwords and stemming, use the locale of the value being analyzed unless you specify a locale. See Analysis.Example
{ "preset": "full_text"}3 properties
presetPreset- Values
- "preserve_terms", "full_text"
customCustomExample
{ "charFilters": [ { "htmlStrip": {} } ], "tokenizer": { "icu": {} }, "filters": [ { "normalize": {} }, { "stemming": { "locale": "sv" } } ]}3 properties
charFiltersCharFilter[]Example
{ "htmlStrip": {}}3 properties
htmlStripHtmlStrip{}mappingMappingCharFilterExample
{ "mappings": { "&": " and " }}patternReplacePatternReplaceExample
{ "pattern": "\\s+", "replacement": " "}tokenizerTokenizerExample
{ "icu": {}}4 properties
icuIcuTokenizer{}whitespaceWhitespaceTokenizer{}keywordKeywordTokenizer{}letterLetterTokenizer{}filtersTokenFilter[]Example
{ "normalize": {}}8 properties
normalizeNormalizeExample
{ "caseFolding": true}stopwordsStopwordsFilterExample
{ "locale": "sv"}stemmingStemmingExample
{ "locale": "sv"}asciiFoldingAsciiFoldingExample
{ "preserveOriginal": true}edgeNgramEdgeNgramExample
{ "minGram": 1, "maxGram": 20}ngramNgramExample
{ "minGram": 3, "maxGram": 5}synonymsSynonymsFilterresources. Applied when a value is indexed, not when the text of a search is analyzed.Example
{ "named": "cars"}decompoundDecompoundFilterExample
{ "locale": "sv"}namedstringresources in the index definition. Used to share analyzer configurations across fields. Validation fails if the specified name does not exist under resources."prose"stopwordsmap of string[]"stopwords": { "named": "..." }.1 property
<key>string[]synonymsmap of Synonyms"synonyms": { "named": "..." }.1 property
<key>SynonymsExample
{ "rules": [ { "equivalent": [ "car", "automobile" ] }, { "mapping": { "from": [ "ny" ], "to": [ "new york" ] } } ]}1 property
Example
{ "equivalent": [ "car", "automobile" ]}2 properties
equivalentstring[]mappingMappingfrom also match searches for any term in to, but not the reverse.Example
{ "from": [ "ny" ], "to": [ "new york" ]}2 properties
fromstring[]requiredtostring[]requiredlocalesIndexLocales"locales": {} to hold all declared locales, or narrows to fewer with "locales": { "only": [...] }. The engine expands the declaration onto each field before storing the index definition, so reading a definition back returns the locales on each field. If omitted, each field declares its own locales.Example
{ "defaultLocale": "en", "supported": [ "sv", "de" ]}2 properties
defaultLocalestringrequireddefaultLocale. This property is required whenever an index declares locales."en"supportedstring[]defaultLocale. A field can narrow to a subset of these supported locales and the default locale by using only.localeFallbackLocaleFallbackExample
{ "chain": [ "da", "en" ]}1 property
chainstring[]defaultLocale.statusIndexStatusExample
{ "state": "usable", "readOnly": false, "indexer": { "node": "node-a-7f21", "address": "http://node-a:8080" }, "luceneCompatibility": "current", "luceneCreatedMajor": 10}6 properties
stateIndexStateneeds_pull (a newer remote state exists and has not been pulled yet), pulling (the node is fetching remote state), usable (the index is serving searches), modified (the index has local changes that are not yet pushed; only writer nodes reach this state), pushing (the node is pushing local changes), unsupported (the definition requires engine features not present on this node version), incompatible (the Lucene files are too old for this build to open), or closed (the index is closed on this node; a new request opens a fresh instance).- Values
- "needs_pull", "usable", "modified", "pulling", "pushing", "unsupported", "incompatible", "closed"
readOnlybooleanindexerIndexerInforeadOnly already answers. Data in this field can lag behind a node handover by a few seconds.Example
{ "node": "node-a-7f21", "address": "http://node-a:8080"}2 properties
nodestring"node-a-7f21"addressstringEXOFIND_NODE_ADDRESS."http://node-a:8080"luceneCompatibilityLuceneCompatibilitycurrent: created by the current major version, and compatible with the current and next Lucene major versions. ending: readable by the current version, but unsupported by the next Lucene major version; reindex before upgrading across major versions. unreadable: too old to open; the index reports the incompatible state and requires reindexing. unknown: no version was recorded and no commit exists to determine the version, such as on an empty index.- Values
- "unknown", "current", "ending", "unreadable"
luceneCreatedMajorintegerunknown.- Format
- int32
10settingsUnsupportedFeaturesstring[]generationsGenerationSummary[]Example
{ "name": "2", "live": true, "createdAt": "2026-08-16T11:02:07Z"}3 properties
namestring@ when addressing it as products@2."2"livebooleancreatedAtstring"2026-08-16T11:02:07Z"freshnessstringfreshness.atLeast on a search, and the search is answered only once the node holds the commit or answers from the promoted generation. Opaque; pass it back unchanged. See Freshness."AQoIcHJvZHVjdHMSATIYBw"ETag header and the location in Location.IndexInfo
An index together with the definition and status of one of its generations: the generation specified in the request, or the live generation if omitted. See Index resource.
namestring"products"generationstring"2"livebooleanversionstringETag header. Pass this value in the If-Match header on PUT requests to prevent overwriting concurrent updates."9f2c1a0b3d4e5f60"definitionIndexDefinitionExample
{ "fields": { "id": { "type": "string", "primaryKey": true, "required": true }, "name": { "type": "string", "matching": {}, "sort": {} }, "category": { "type": "string", "filter": {}, "facet": {} }, "price": { "type": "float", "filter": {}, "sort": {} }, "published": { "type": "boolean", "filter": {} } }}7 properties
sourceSourcefull retains the entire document, enabling full document retrieval and reindexing from the index itself. none retains only fields configured as stored. Changing this setting applies to documents indexed after the update.- Default
- "full"
- Values
- "full", "none"
metadatamap of string1 property
<key>stringfieldsmap of FieldDefinition*, which defines multiple fields at once; a name never contains a dot, which addresses fields inside object fields. The wildcard matches exactly one name. Explicit definitions take precedence, and the longest literal prefix wins among multiple wildcard patterns.1 property
<key>FieldDefinitiontype selects the field type and the properties available on it. Field usages are opt-in: adding an empty configuration object enables a usage with engine defaults, and only explicitly configured properties are stored, preserving default values across engine updates. See Field types.Example
{ "type": "string", "stored": true, "filter": {}, "matching": { "highlight": {} }}10 types
StringFieldDefinitiontype: "string"string.Example
{ "type": "string", "stored": true, "filter": {}, "matching": { "highlight": {} }}roleRole- Values
- "id", "title", "description", "tag", "path", "code", "timestamp", "geo"
primaryKeybooleanrequired and cannot be multiple, locale-specific, or wildcard fields.- Default
- false
requiredbooleantrue, the engine rejects documents that lack a value for this field.- Default
- false
multiplebooleantrue, the field accepts multiple values in a single document. If false, the engine rejects documents containing multiple values for the field.- Default
- false
storedbooleantrue, the engine stores field values to return in search results. This setting applies only when source is set to none, as documents are otherwise preserved in full.- Default
- false
localesLocaleslocales, configuring {} gives the field every declared locale, and only narrows the field to a subset of those locales.Example
{ "defaultLocale": "sv", "locales": [ "en", "de" ]}4 properties
defaultLocalestringlocales, this property defaults to the defaultLocale of the index."sv"localesstring[]locales, which narrows a field with only instead. Reading an index definition back always returns this list on each field.onlystring[]locales. If omitted, the field holds all declared locales. Every tag must be one the index declares, and the list must contain the default locale of the field. The engine expands this property into defaultLocale and locales before storing the index definition, so reading a definition back returns those properties instead.fallbackFallbacklocaleFallback. Only evaluated on an index that declares a fallback; setting enabled on an index without fallback configuration is rejected.- Default
- "enabled"
- Values
- "enabled", "disabled"
filterFilterUsage{}sortSortUsageExample
{ "collation": "locale", "missing": "last"}2 properties
collationCollation- Default
- "locale"
- Values
- "binary", "locale"
missingMissing- Default
- "last"
- Values
- "first", "last"
facetFacetUsage{}keywordKeywordExample
{ "caseFolding": true}1 property
caseFoldingbooleantrue, folds case before values are compared, allowing filters on Fiction to match fiction.- Default
- true
matchingTextUsageExample
{ "weight": 3, "highlight": {}, "typoTolerance": {}, "lengthNormalization": "strong"}7 properties
analyzerAnalyzerDefinitionExample
{ "preset": "full_text"}3 properties
presetPreset- Values
- "preserve_terms", "full_text"
customCustomExample
{ "charFilters": [ { "htmlStrip": {} } ], "tokenizer": { "icu": {} }, "filters": [ { "normalize": {} }, { "stemming": { "locale": "sv" } } ]}namedstringresources in the index definition. Used to share analyzer configurations across fields. Validation fails if the specified name does not exist under resources."prose"weightnumber- Default
- 1
- Format
- float
highlightHighlightUsagestored property. Highlighting targets matching when defined; highlight on autocomplete takes effect only when matching is omitted.{}typoToleranceTypoToleranceExample
{ "minLengthOneTypo": 5, "minLengthTwoTypos": 9, "prefixLength": 1}4 properties
minLengthOneTypointeger- Default
- 5
- Format
- int32
minLengthTwoTyposintegerautocomplete, two typos are permitted only when explicitly configured.- Default
- 9
- Format
- int32
prefixLengthinteger- Default
- 1
- Format
- int32
numbersNumbers{}decompoundDecompoundanalyzer define their own decompounding behavior. See Compound words.- Values
- "none"
exactExactExample
{ "boost": 2}1 property
boostnumber- Default
- 2
- Format
- float
lengthNormalizationLengthNormalization- Default
- "moderate"
- Values
- "none", "moderate", "strong"
autocompleteTextUsageautocomplete does not support phrase matching.Example
{ "weight": 3, "highlight": {}, "typoTolerance": {}, "lengthNormalization": "strong"}7 properties
analyzerAnalyzerDefinitionExample
{ "preset": "full_text"}3 properties
presetPreset- Values
- "preserve_terms", "full_text"
customCustomExample
{ "charFilters": [ { "htmlStrip": {} } ], "tokenizer": { "icu": {} }, "filters": [ { "normalize": {} }, { "stemming": { "locale": "sv" } } ]}namedstringresources in the index definition. Used to share analyzer configurations across fields. Validation fails if the specified name does not exist under resources."prose"weightnumber- Default
- 1
- Format
- float
highlightHighlightUsagestored property. Highlighting targets matching when defined; highlight on autocomplete takes effect only when matching is omitted.{}typoToleranceTypoToleranceExample
{ "minLengthOneTypo": 5, "minLengthTwoTypos": 9, "prefixLength": 1}4 properties
minLengthOneTypointeger- Default
- 5
- Format
- int32
minLengthTwoTyposintegerautocomplete, two typos are permitted only when explicitly configured.- Default
- 9
- Format
- int32
prefixLengthinteger- Default
- 1
- Format
- int32
numbersNumbers{}decompoundDecompoundanalyzer define their own decompounding behavior. See Compound words.- Values
- "none"
exactExactExample
{ "boost": 2}1 property
boostnumber- Default
- 2
- Format
- float
lengthNormalizationLengthNormalization- Default
- "moderate"
- Values
- "none", "moderate", "strong"
hierarchyHierarchyMen/Shoes/Running). Facets on hierarchy fields return nested counts per level, and the under matcher filters to a level and all sub-levels.Example
{ "separator": "/"}1 property
separatorstring- Default
- "/"
BooleanFieldDefinitiontype: "boolean"true or false). A boolean has nothing to analyze, so filtering is the only way to search it.Example
{ "type": "boolean", "filter": {}}primaryKeybooleanrequired and cannot be multiple, locale-specific, or wildcard fields.- Default
- false
requiredbooleantrue, the engine rejects documents that lack a value for this field.- Default
- false
multiplebooleantrue, the field accepts multiple values in a single document. If false, the engine rejects documents containing multiple values for the field.- Default
- false
storedbooleantrue, the engine stores field values to return in search results. This setting applies only when source is set to none, as documents are otherwise preserved in full.- Default
- false
localesLocaleslocales, configuring {} gives the field every declared locale, and only narrows the field to a subset of those locales.Example
{ "defaultLocale": "sv", "locales": [ "en", "de" ]}4 properties
defaultLocalestringlocales, this property defaults to the defaultLocale of the index."sv"localesstring[]locales, which narrows a field with only instead. Reading an index definition back always returns this list on each field.onlystring[]locales. If omitted, the field holds all declared locales. Every tag must be one the index declares, and the list must contain the default locale of the field. The engine expands this property into defaultLocale and locales before storing the index definition, so reading a definition back returns those properties instead.fallbackFallbacklocaleFallback. Only evaluated on an index that declares a fallback; setting enabled on an index without fallback configuration is rejected.- Default
- "enabled"
- Values
- "enabled", "disabled"
filterFilterUsage{}sortSortUsageExample
{ "collation": "locale", "missing": "last"}2 properties
collationCollation- Default
- "locale"
- Values
- "binary", "locale"
missingMissing- Default
- "last"
- Values
- "first", "last"
facetFacetUsage{}VectorFieldDefinitiontype: "vector"knn search clause. Vector fields do not support filter, sort, facet, or locales. Vectors must be supplied in document payloads. See Search by vector.Example
{ "type": "vector", "dimensions": 1536, "similarity": "cosine"}primaryKeybooleanrequired and cannot be multiple, locale-specific, or wildcard fields.- Default
- false
requiredbooleantrue, the engine rejects documents that lack a value for this field.- Default
- false
multiplebooleantrue, the field accepts multiple values in a single document. If false, the engine rejects documents containing multiple values for the field.- Default
- false
storedbooleantrue, the engine stores field values to return in search results. This setting applies only when source is set to none, as documents are otherwise preserved in full.- Default
- false
localesLocalesExample
{ "defaultLocale": "sv", "locales": [ "en", "de" ]}4 properties
defaultLocalestringlocales, this property defaults to the defaultLocale of the index."sv"localesstring[]locales, which narrows a field with only instead. Reading an index definition back always returns this list on each field.onlystring[]locales. If omitted, the field holds all declared locales. Every tag must be one the index declares, and the list must contain the default locale of the field. The engine expands this property into defaultLocale and locales before storing the index definition, so reading a definition back returns those properties instead.fallbackFallbacklocaleFallback. Only evaluated on an index that declares a fallback; setting enabled on an index without fallback configuration is rejected.- Default
- "enabled"
- Values
- "enabled", "disabled"
filterFilterUsageknn search clause; setting it is rejected.{}sortSortUsageExample
{ "collation": "locale", "missing": "last"}2 properties
collationCollation- Default
- "locale"
- Values
- "binary", "locale"
missingMissing- Default
- "last"
- Values
- "first", "last"
dimensionsintegerrequired- Format
- int32
1536similaritySimilaritydot_product requires unit-length normalized vectors.- Default
- "cosine"
- Values
- "cosine", "dot_product", "euclidean"
hnswHnswExample
{ "m": 16, "efConstruction": 100}2 properties
minteger- Format
- int32
efConstructioninteger- Format
- int32
quantizationQuantization- Default
- "none"
- Values
- "none", "int8", "int4"
Int32FieldDefinitiontype: "int32"Example
{ "type": "int32", "filter": {}, "validation": { "min": 0 }}primaryKeybooleanrequired and cannot be multiple, locale-specific, or wildcard fields.- Default
- false
requiredbooleantrue, the engine rejects documents that lack a value for this field.- Default
- false
multiplebooleantrue, the field accepts multiple values in a single document. If false, the engine rejects documents containing multiple values for the field.- Default
- false
storedbooleantrue, the engine stores field values to return in search results. This setting applies only when source is set to none, as documents are otherwise preserved in full.- Default
- false
localesLocaleslocales, configuring {} gives the field every declared locale, and only narrows the field to a subset of those locales.Example
{ "defaultLocale": "sv", "locales": [ "en", "de" ]}4 properties
defaultLocalestringlocales, this property defaults to the defaultLocale of the index."sv"localesstring[]locales, which narrows a field with only instead. Reading an index definition back always returns this list on each field.onlystring[]locales. If omitted, the field holds all declared locales. Every tag must be one the index declares, and the list must contain the default locale of the field. The engine expands this property into defaultLocale and locales before storing the index definition, so reading a definition back returns those properties instead.fallbackFallbacklocaleFallback. Only evaluated on an index that declares a fallback; setting enabled on an index without fallback configuration is rejected.- Default
- "enabled"
- Values
- "enabled", "disabled"
filterFilterUsage{}sortSortUsageExample
{ "collation": "locale", "missing": "last"}2 properties
collationCollation- Default
- "locale"
- Values
- "binary", "locale"
missingMissing- Default
- "last"
- Values
- "first", "last"
facetFacetUsage{}signalSignalUsagefilter, facet, stored, multiple, locales or primaryKey. A document indexed without a value keeps the value the field holds. See Signal fields.{}validationInt32ValidationExample
{ "min": 0, "max": 100}2 properties
mininteger- Format
- int32
0maxinteger- Format
- int32
unitstringSEK, a CLDR unit identifier such as kilogram or gigabyte, or any other text matched as written. A search in user mode reads a number typed next to the unit, or next to a comparative word such as under, as a filter on this field. Changing the unit does not require a reindex. See Reading numbers and units."SEK"Int64FieldDefinitiontype: "int64"Example
{ "type": "int64", "filter": {}, "sort": {}}primaryKeybooleanrequired and cannot be multiple, locale-specific, or wildcard fields.- Default
- false
requiredbooleantrue, the engine rejects documents that lack a value for this field.- Default
- false
multiplebooleantrue, the field accepts multiple values in a single document. If false, the engine rejects documents containing multiple values for the field.- Default
- false
storedbooleantrue, the engine stores field values to return in search results. This setting applies only when source is set to none, as documents are otherwise preserved in full.- Default
- false
localesLocaleslocales, configuring {} gives the field every declared locale, and only narrows the field to a subset of those locales.Example
{ "defaultLocale": "sv", "locales": [ "en", "de" ]}4 properties
defaultLocalestringlocales, this property defaults to the defaultLocale of the index."sv"localesstring[]locales, which narrows a field with only instead. Reading an index definition back always returns this list on each field.onlystring[]locales. If omitted, the field holds all declared locales. Every tag must be one the index declares, and the list must contain the default locale of the field. The engine expands this property into defaultLocale and locales before storing the index definition, so reading a definition back returns those properties instead.fallbackFallbacklocaleFallback. Only evaluated on an index that declares a fallback; setting enabled on an index without fallback configuration is rejected.- Default
- "enabled"
- Values
- "enabled", "disabled"
filterFilterUsage{}sortSortUsageExample
{ "collation": "locale", "missing": "last"}2 properties
collationCollation- Default
- "locale"
- Values
- "binary", "locale"
missingMissing- Default
- "last"
- Values
- "first", "last"
facetFacetUsage{}signalSignalUsagefilter, facet, stored, multiple, locales or primaryKey. A document indexed without a value keeps the value the field holds. See Signal fields.{}validationInt64ValidationExample
{ "min": 0, "max": 1099511627776}2 properties
mininteger- Format
- int64
maxinteger- Format
- int64
unitstringSEK, a CLDR unit identifier such as kilogram or gigabyte, or any other text matched as written. A search in user mode reads a number typed next to the unit, or next to a comparative word such as under, as a filter on this field. Changing the unit does not require a reindex. See Reading numbers and units."gigabyte"FloatFieldDefinitiontype: "float"Example
{ "type": "float", "filter": {}, "sort": {}}primaryKeybooleanrequired and cannot be multiple, locale-specific, or wildcard fields.- Default
- false
requiredbooleantrue, the engine rejects documents that lack a value for this field.- Default
- false
multiplebooleantrue, the field accepts multiple values in a single document. If false, the engine rejects documents containing multiple values for the field.- Default
- false
storedbooleantrue, the engine stores field values to return in search results. This setting applies only when source is set to none, as documents are otherwise preserved in full.- Default
- false
localesLocaleslocales, configuring {} gives the field every declared locale, and only narrows the field to a subset of those locales.Example
{ "defaultLocale": "sv", "locales": [ "en", "de" ]}4 properties
defaultLocalestringlocales, this property defaults to the defaultLocale of the index."sv"localesstring[]locales, which narrows a field with only instead. Reading an index definition back always returns this list on each field.onlystring[]locales. If omitted, the field holds all declared locales. Every tag must be one the index declares, and the list must contain the default locale of the field. The engine expands this property into defaultLocale and locales before storing the index definition, so reading a definition back returns those properties instead.fallbackFallbacklocaleFallback. Only evaluated on an index that declares a fallback; setting enabled on an index without fallback configuration is rejected.- Default
- "enabled"
- Values
- "enabled", "disabled"
filterFilterUsage{}sortSortUsageExample
{ "collation": "locale", "missing": "last"}2 properties
collationCollation- Default
- "locale"
- Values
- "binary", "locale"
missingMissing- Default
- "last"
- Values
- "first", "last"
facetFacetUsage{}signalSignalUsagefilter, facet, stored, multiple, locales or primaryKey. A document indexed without a value keeps the value the field holds. See Signal fields.{}validationFloatValidationExample
{ "min": 0, "max": 5}2 properties
minnumber- Format
- float
maxnumber- Format
- float
unitstringSEK, a CLDR unit identifier such as kilogram or gigabyte, or any other text matched as written. A search in user mode reads a number typed next to the unit, or next to a comparative word such as under, as a filter on this field. Changing the unit does not require a reindex. See Reading numbers and units."kilogram"DoubleFieldDefinitiontype: "double"Example
{ "type": "double", "filter": {}, "sort": {}}primaryKeybooleanrequired and cannot be multiple, locale-specific, or wildcard fields.- Default
- false
requiredbooleantrue, the engine rejects documents that lack a value for this field.- Default
- false
multiplebooleantrue, the field accepts multiple values in a single document. If false, the engine rejects documents containing multiple values for the field.- Default
- false
storedbooleantrue, the engine stores field values to return in search results. This setting applies only when source is set to none, as documents are otherwise preserved in full.- Default
- false
localesLocaleslocales, configuring {} gives the field every declared locale, and only narrows the field to a subset of those locales.Example
{ "defaultLocale": "sv", "locales": [ "en", "de" ]}4 properties
defaultLocalestringlocales, this property defaults to the defaultLocale of the index."sv"localesstring[]locales, which narrows a field with only instead. Reading an index definition back always returns this list on each field.onlystring[]locales. If omitted, the field holds all declared locales. Every tag must be one the index declares, and the list must contain the default locale of the field. The engine expands this property into defaultLocale and locales before storing the index definition, so reading a definition back returns those properties instead.fallbackFallbacklocaleFallback. Only evaluated on an index that declares a fallback; setting enabled on an index without fallback configuration is rejected.- Default
- "enabled"
- Values
- "enabled", "disabled"
filterFilterUsage{}sortSortUsageExample
{ "collation": "locale", "missing": "last"}2 properties
collationCollation- Default
- "locale"
- Values
- "binary", "locale"
missingMissing- Default
- "last"
- Values
- "first", "last"
facetFacetUsage{}signalSignalUsagefilter, facet, stored, multiple, locales or primaryKey. A document indexed without a value keeps the value the field holds. See Signal fields.{}validationDoubleValidationExample
{ "min": 0, "max": 1000}2 properties
minnumber- Format
- double
maxnumber- Format
- double
unitstringSEK, a CLDR unit identifier such as kilogram or gigabyte, or any other text matched as written. A search in user mode reads a number typed next to the unit, or next to a comparative word such as under, as a filter on this field. Changing the unit does not require a reindex. See Reading numbers and units."EUR"TimestampFieldDefinitiontype: "timestamp"Z or +02:00). Timestamps are stored and compared at millisecond precision. Values representing the same instant are identical for filtering and sorting; search results return the original string format provided during ingestion. Documents containing timestamps without timezone offsets are rejected.Example
{ "type": "timestamp", "filter": {}, "sort": {}}roleRole- Values
- "id", "title", "description", "tag", "path", "code", "timestamp", "geo"
primaryKeybooleanrequired and cannot be multiple, locale-specific, or wildcard fields.- Default
- false
requiredbooleantrue, the engine rejects documents that lack a value for this field.- Default
- false
multiplebooleantrue, the field accepts multiple values in a single document. If false, the engine rejects documents containing multiple values for the field.- Default
- false
storedbooleantrue, the engine stores field values to return in search results. This setting applies only when source is set to none, as documents are otherwise preserved in full.- Default
- false
localesLocaleslocales, configuring {} gives the field every declared locale, and only narrows the field to a subset of those locales.Example
{ "defaultLocale": "sv", "locales": [ "en", "de" ]}4 properties
defaultLocalestringlocales, this property defaults to the defaultLocale of the index."sv"localesstring[]locales, which narrows a field with only instead. Reading an index definition back always returns this list on each field.onlystring[]locales. If omitted, the field holds all declared locales. Every tag must be one the index declares, and the list must contain the default locale of the field. The engine expands this property into defaultLocale and locales before storing the index definition, so reading a definition back returns those properties instead.fallbackFallbacklocaleFallback. Only evaluated on an index that declares a fallback; setting enabled on an index without fallback configuration is rejected.- Default
- "enabled"
- Values
- "enabled", "disabled"
filterFilterUsage{}sortSortUsageExample
{ "collation": "locale", "missing": "last"}2 properties
collationCollation- Default
- "locale"
- Values
- "binary", "locale"
missingMissing- Default
- "last"
- Values
- "first", "last"
facetFacetUsage{}GeoPointFieldDefinitiontype: "geo_point"lat and lon coordinates. Locations are searched by distance rather than exact value: filter enables the distance matcher, and sort enables ordering by distance from an origin, nearest first.Example
{ "type": "geo_point", "filter": {}, "sort": {}}roleRole- Values
- "id", "title", "description", "tag", "path", "code", "timestamp", "geo"
primaryKeybooleanrequired and cannot be multiple, locale-specific, or wildcard fields.- Default
- false
requiredbooleantrue, the engine rejects documents that lack a value for this field.- Default
- false
multiplebooleantrue, the field accepts multiple values in a single document. If false, the engine rejects documents containing multiple values for the field.- Default
- false
storedbooleantrue, the engine stores field values to return in search results. This setting applies only when source is set to none, as documents are otherwise preserved in full.- Default
- false
localesLocaleslocales, configuring {} gives the field every declared locale, and only narrows the field to a subset of those locales.Example
{ "defaultLocale": "sv", "locales": [ "en", "de" ]}4 properties
defaultLocalestringlocales, this property defaults to the defaultLocale of the index."sv"localesstring[]locales, which narrows a field with only instead. Reading an index definition back always returns this list on each field.onlystring[]locales. If omitted, the field holds all declared locales. Every tag must be one the index declares, and the list must contain the default locale of the field. The engine expands this property into defaultLocale and locales before storing the index definition, so reading a definition back returns those properties instead.fallbackFallbacklocaleFallback. Only evaluated on an index that declares a fallback; setting enabled on an index without fallback configuration is rejected.- Default
- "enabled"
- Values
- "enabled", "disabled"
sortSortUsageExample
{ "collation": "locale", "missing": "last"}2 properties
collationCollation- Default
- "locale"
- Values
- "binary", "locale"
missingMissing- Default
- "last"
- Values
- "first", "last"
facetFacetUsage{}"object"variants.price). An object field cannot configure filter, sort, facet, locales, or stored on itself. Child fields can be objects in turn, though a nested array cannot contain another nested array. An array of objects can specify a key to identify each object value. Object fields are returned in search results through the preserved document source; a stored child field below single objects also answers when the index keeps none. See object.Example
{ "type": "object", "multiple": true, "mode": "nested", "key": "sku", "fields": { "sku": { "type": "string", "required": true, "filter": {} }, "color": { "type": "string", "filter": {} }, "price": { "type": "double", "filter": {} } }}primaryKeybooleanrequiredbooleantrue, the engine rejects documents that lack a value for this field.- Default
- false
multiplebooleantrue, the field holds a list of object values, and mode is required. Single object fields are always indexed as flattened objects.- Default
- false
storedbooleanlocalesLocalesExample
{ "defaultLocale": "sv", "locales": [ "en", "de" ]}4 properties
defaultLocalestringlocales, this property defaults to the defaultLocale of the index."sv"localesstring[]locales, which narrows a field with only instead. Reading an index definition back always returns this list on each field.onlystring[]locales. If omitted, the field holds all declared locales. Every tag must be one the index declares, and the list must contain the default locale of the field. The engine expands this property into defaultLocale and locales before storing the index definition, so reading a definition back returns those properties instead.fallbackFallbacklocaleFallback. Only evaluated on an index that declares a fallback; setting enabled on an index without fallback configuration is rejected.- Default
- "enabled"
- Values
- "enabled", "disabled"
sortSortUsageExample
{ "collation": "locale", "missing": "last"}2 properties
collationCollation- Default
- "locale"
- Values
- "binary", "locale"
missingMissing- Default
- "last"
- Values
- "first", "last"
modeModemultiple is true (index:field:object:mode_required) and rejected when it is not (index:field:object:mode_without_multiple).- Values
- "nested", "flattened"
keystringvariants[V-2]) and populates key on search value hits. Requires multiple: true (index:field:object:key_without_multiple). Must name a field defined in fields (index:field:object:key_unknown) that is required, not multiple, and of type string, int32, or int64 (index:field:object:key_invalid). Duplicate key values within a document are rejected with document:object_key_duplicate.fieldsmap of FieldDefinitionobject type included - objects nest, though a nested array cannot contain another nested array (index:field:object:nested_in_nested). What a child field may configure follows from where it sits: sort and stored are rejected below a flattened array (index:field:object:flattened_sort_unsupported, index:field:object:flattened_stored_unsupported), and primaryKey is rejected inside any object (index:field:object:inner_usage_unsupported). Below a nested array stored and highlight work - highlighted fragments come back on value hits. locales works everywhere.1 property
<key>FieldDefinitiontype selects the field type and the properties available on it. Field usages are opt-in: adding an empty configuration object enables a usage with engine defaults, and only explicitly configured properties are stored, preserving default values across engine updates. See Field types.Example
{ "type": "string", "stored": true, "filter": {}, "matching": { "highlight": {} }}rankingRankingExample
{ "tieBreakers": [ { "field": "sales", "direction": "descending" } ], "signals": [ { "field": "purchases", "saturation": { "pivot": 50 }, "weight": 0.5 } ]}2 properties
tieBreakersTieBreaker[]sort enabled.Example
{ "field": "sales", "direction": "descending"}2 properties
fieldstringrequiredsort enabled."sales"directionDirectiondescending.- Default
- "descending"
- Values
- "ascending", "descending"
signalsSignalDefinition[]signals adds to these rules or replaces them based on signalsMode.Example
{ "field": "purchases", "saturation": { "pivot": 50 }, "weight": 0.5}5 properties
fieldstringrequired"purchases"saturationRankingSaturationint32, int64, float and double fields.Example
{ "pivot": 50}1 property
pivotnumberrequired0.- Format
- double
50decayRankingDecaytimestamp fields.Example
{ "halfLife": 604800}1 property
halfLifeintegerrequired0.- Format
- int64
604800linearRankingLinearvalue / ceiling held between 0 and 1. For int32, int64, float and double fields holding a score computed elsewhere, such as an engagement score between 0 and 1.Example
{ "ceiling": 1}1 property
ceilingnumberrequired0.- Format
- double
1weightnumber1, a document at the top of the signal reaches twice the score of one holding no value at all.- Default
- 1
- Format
- float
resourcesResourcesExample
{ "analyzers": { "prose": { "preset": "full_text" } }, "stopwords": { "brands": [ "acme" ] }, "synonyms": { "cars": { "rules": [ { "equivalent": [ "car", "automobile" ] }, { "mapping": { "from": [ "ny" ], "to": [ "new york" ] } } ] } }}3 properties
analyzersmap of AnalyzerDefinition"analyzer": { "named": "..." }. Presets are expanded the same way as on a field.1 property
<key>AnalyzerDefinitionpreset, custom, or named. An analyzer chain describes the indexing process. The engine derives the query analyzer from the indexing chain. Components that select words by locale, such as stopwords and stemming, use the locale of the value being analyzed unless you specify a locale. See Analysis.Example
{ "preset": "full_text"}3 properties
presetPreset- Values
- "preserve_terms", "full_text"
customCustomExample
{ "charFilters": [ { "htmlStrip": {} } ], "tokenizer": { "icu": {} }, "filters": [ { "normalize": {} }, { "stemming": { "locale": "sv" } } ]}3 properties
charFiltersCharFilter[]Example
{ "htmlStrip": {}}3 properties
htmlStripHtmlStrip{}mappingMappingCharFilterExample
{ "mappings": { "&": " and " }}patternReplacePatternReplaceExample
{ "pattern": "\\s+", "replacement": " "}tokenizerTokenizerExample
{ "icu": {}}4 properties
icuIcuTokenizer{}whitespaceWhitespaceTokenizer{}keywordKeywordTokenizer{}letterLetterTokenizer{}filtersTokenFilter[]Example
{ "normalize": {}}8 properties
normalizeNormalizeExample
{ "caseFolding": true}stopwordsStopwordsFilterExample
{ "locale": "sv"}stemmingStemmingExample
{ "locale": "sv"}asciiFoldingAsciiFoldingExample
{ "preserveOriginal": true}edgeNgramEdgeNgramExample
{ "minGram": 1, "maxGram": 20}ngramNgramExample
{ "minGram": 3, "maxGram": 5}synonymsSynonymsFilterresources. Applied when a value is indexed, not when the text of a search is analyzed.Example
{ "named": "cars"}decompoundDecompoundFilterExample
{ "locale": "sv"}namedstringresources in the index definition. Used to share analyzer configurations across fields. Validation fails if the specified name does not exist under resources."prose"stopwordsmap of string[]"stopwords": { "named": "..." }.1 property
<key>string[]synonymsmap of Synonyms"synonyms": { "named": "..." }.1 property
<key>SynonymsExample
{ "rules": [ { "equivalent": [ "car", "automobile" ] }, { "mapping": { "from": [ "ny" ], "to": [ "new york" ] } } ]}1 property
Example
{ "equivalent": [ "car", "automobile" ]}2 properties
equivalentstring[]mappingMappingfrom also match searches for any term in to, but not the reverse.Example
{ "from": [ "ny" ], "to": [ "new york" ]}2 properties
fromstring[]requiredtostring[]requiredlocalesIndexLocales"locales": {} to hold all declared locales, or narrows to fewer with "locales": { "only": [...] }. The engine expands the declaration onto each field before storing the index definition, so reading a definition back returns the locales on each field. If omitted, each field declares its own locales.Example
{ "defaultLocale": "en", "supported": [ "sv", "de" ]}2 properties
defaultLocalestringrequireddefaultLocale. This property is required whenever an index declares locales."en"supportedstring[]defaultLocale. A field can narrow to a subset of these supported locales and the default locale by using only.localeFallbackLocaleFallbackExample
{ "chain": [ "da", "en" ]}1 property
chainstring[]defaultLocale.statusIndexStatusExample
{ "state": "usable", "readOnly": false, "indexer": { "node": "node-a-7f21", "address": "http://node-a:8080" }, "luceneCompatibility": "current", "luceneCreatedMajor": 10}6 properties
stateIndexStateneeds_pull (a newer remote state exists and has not been pulled yet), pulling (the node is fetching remote state), usable (the index is serving searches), modified (the index has local changes that are not yet pushed; only writer nodes reach this state), pushing (the node is pushing local changes), unsupported (the definition requires engine features not present on this node version), incompatible (the Lucene files are too old for this build to open), or closed (the index is closed on this node; a new request opens a fresh instance).- Values
- "needs_pull", "usable", "modified", "pulling", "pushing", "unsupported", "incompatible", "closed"
readOnlybooleanindexerIndexerInforeadOnly already answers. Data in this field can lag behind a node handover by a few seconds.Example
{ "node": "node-a-7f21", "address": "http://node-a:8080"}2 properties
nodestring"node-a-7f21"addressstringEXOFIND_NODE_ADDRESS."http://node-a:8080"luceneCompatibilityLuceneCompatibilitycurrent: created by the current major version, and compatible with the current and next Lucene major versions. ending: readable by the current version, but unsupported by the next Lucene major version; reindex before upgrading across major versions. unreadable: too old to open; the index reports the incompatible state and requires reindexing. unknown: no version was recorded and no commit exists to determine the version, such as on an empty index.- Values
- "unknown", "current", "ending", "unreadable"
luceneCreatedMajorintegerunknown.- Format
- int32
10settingsUnsupportedFeaturesstring[]generationsGenerationSummary[]Example
{ "name": "2", "live": true, "createdAt": "2026-08-16T11:02:07Z"}3 properties
namestring@ when addressing it as products@2."2"livebooleancreatedAtstring"2026-08-16T11:02:07Z"freshnessstringfreshness.atLeast on a search, and the search is answered only once the node holds the commit or answers from the promoted generation. Opaque; pass it back unchanged. See Freshness."AQoIcHJvZHVjdHMSATIYBw"ErrorResponse
The body of every failed request. Error codes use colon-separated namespaces such as index:field:name_invalid, are stable across API versions, and are never renamed or reused, so clients match on code rather than on message. See Errors.
codestringvalidation and the individual problems are listed in errors. For all other failures, this matches the code of the single entry in errors."validation"messagestringcode rather than on message. When a validation failure contains one problem, this is that problem's message. When it contains several, it reads Request contains N errors."Request contains 2 errors"errorsErrorDetail[]Example
{ "code": "index:field:primary_key:multiple_unsupported", "message": "Field `id` is marked as a primary key and multiple, primary keys can not have multiple values", "path": "id"}4 properties
codestring"index:field:primary_key:multiple_unsupported"messagestring"Field `id` is marked as a primary key and multiple, primary keys can not have multiple values"pathstringfields.title or documents[1].nonexistent. Names join with ., one element of a list reads [n] counted from zero, and a key of a free-form map such as metadata goes in brackets and double quotes when it holds a dot or a bracket, as metadata["build.sha"]. A field inside an object field carries its own dotted path, so a path here reaches a field the same way a query does. Omitted when the problem applies to the request as a whole. See API conventions."id"argumentsmap of string1 property
<key>stringError codes
- index:generation:reindex_without_creation
- `reindex` was given on a request that creates no generation.
- request:body_required
- The request carries no definition.
- request:value_required
- A property of the definition that needs a value is `null`.
- index:field:analyzer:invalid
- The analyzer of a field is not exactly one of a preset, a custom chain and a named chain.
- index:field:analyzer:component_invalid
- A component of a custom analysis chain is not exactly one kind.
- index:field:analyzer:decompound_conflicting
- A field sets `decompound` beside a custom or named chain. A given chain says itself whether it splits, through a `decompound` component.
- index:field:locales:locale_unknown
- A field names a locale the index does not declare in its `locales`.
- index:field:locales:list_with_declaration
- A field lists its own `locales` while the index declares them. Narrow with `only` instead.
- index:field:locales:only_without_declaration
- A field narrows with `only` while the index declares no `locales` to narrow.
- index:field:locales:default_not_in_only
- A field narrows to locales that leave out the locale it defaults to.
- index:locales:default_locale_required
- The `locales` of the index names no `defaultLocale`, which every field takes as its own.
- index:field:role:type_unsupported
- A field has a role that no field of its type can answer for.
- index:field:role:object_unsupported
- A field inside an object field has a role that cannot be used there.
- index:ranking:signal:shape_invalid
- A ranking signal is not exactly one of `saturation`, `decay` and `linear`.
- index:resources:analyzers:named
- An analysis chain in `resources` is itself `named`. The resources are where names are defined.
- index:resources:synonyms:rule_invalid
- A rule of a synonym set in `resources` is not exactly one kind - equivalent words, or a one-way mapping.
- index:resources:synonyms:one_sided
- A one-way synonym mapping carries no word on one of its sides.
- index:resources:synonyms:words_too_few
- A rule of equivalent synonyms carries fewer than two words.
- index:resources:synonyms:word_required
- A synonym is blank.
- index:field:name_invalid
- A field name holds something other than letters, numbers, underscores and wildcards. To hold fields under a dotted path, declare an `object` field.
- index:field:type_required
- A field declares no type.
- index:field:type_unsupported
- A field has a type this version of the engine cannot index.
- index:field:primary_key:wildcard_unsupported
- A field name with a wildcard is marked as the primary key.
- index:field:primary_key:multiple_unsupported
- The primary key field is also `multiple`.
- index:field:primary_key:type_unsupported
- The primary key field has a type that cannot be a primary key.
- index:schema:primary_key_duplicate
- More than one field is marked as the primary key.
- index:schema:primary_key_locales_unsupported
- The primary key field is locale specific.
- index:schema:primary_key_not_required
- The primary key field is marked as not required.
- index:schema:features_unsupported
- The definition needs engine features this version does not have. The `features` argument names them.
- index:field:required:wildcard_unsupported
- A field name with a wildcard is marked as required.
- index:field:sort:multiple_unsupported
- A field is both `sortable` and `multiple`.
- index:field:sort:type_unsupported
- A field is `sortable` and its type cannot be sorted on.
- index:field:facet:type_unsupported
- A field is faceted and its type cannot be counted per value.
- index:field:signal:type_unsupported
- A field is a signal and its type cannot be refreshed in place.
- index:field:signal:usage_conflicting
- A signal field is also declared for a usage that would go stale on every refresh.
- index:field:signal:wildcard_unsupported
- A field name with a wildcard is a signal. A signal is refreshed by the name it was declared under.
- index:field:locales:locale_unsupported
- A field names a locale this version of the engine does not support.
- index:field:locales:fallback_without_index
- A field takes part in locale fallback and the index declares none.
- index:locale_fallback:locale_fields_required
- The index falls back between locales and no field of it is locale specific.
- index:locale_fallback:locale_duplicate
- A locale is fallen back to more than once.
- index:locale_fallback:locale_not_held
- A locale is fallen back to that no field of the index holds values in.
- index:locale_fallback:locale_unsupported
- A locale is fallen back to that this version of the engine does not support.
- index:field:analyzer:conflicting
- A usage carries an analysis chain and also names one in `resources`. Give at most one of the two.
- index:field:analyzer:chain_unknown
- A usage names an analysis chain that `resources` does not define.
- index:field:analyzer:stopwords_unknown
- An analysis chain names a stopword list that `resources` does not define.
- index:field:analyzer:synonyms_unknown
- An analysis chain names a synonym set that `resources` does not define.
- index:field:analyzer:locale_unsupported
- An analysis chain names a locale this version of the engine does not support.
- index:field:analyzer:decompound_locale_unsupported
- An analysis chain splits compounds by a locale this version of the engine has no decompounding data for.
- index:field:analyzer:grams_invalid
- An n-gram component asks for sizes below one, or a shortest longer than its longest.
- index:field:analyzer:pattern_invalid
- A pattern replacement component carries something that is not a valid regular expression.
- index:field:matching:weight_out_of_range
- The weight of matching is not above zero.
- index:field:matching:typo_min_length_out_of_range
- The shortest word that may hold a typo is below one character.
- index:field:matching:typo_lengths_conflicting
- A word is long enough for two typos before it is long enough for one.
- index:field:matching:typo_prefix_out_of_range
- The prefix matched exactly under typo tolerance is below zero.
- index:field:autocomplete:weight_out_of_range
- The weight of autocomplete is not above zero.
- index:field:exact:boost_out_of_range
- The boost of a whole-value match is not above zero.
- index:field:hierarchy:separator_invalid
- The separator between the levels of a path is empty. Leave it out for `/`.
- index:field:sort:collation_unsupported
- A timestamp field declares a collation, which means nothing when sorting one.
- index:field:number:unit_invalid
- The `unit` of a number field is not text.
- index:field:number:bound_invalid
- A validation bound of a number field is not a finite number.
- index:field:number:bounds_conflicting
- The `min` of a number field is above its `max`.
- index:field:vector:dimensions_required
- A vector field declares no dimensions.
- index:field:vector:dimensions_out_of_range
- The dimensions of a vector field are outside 1 to the maximum the engine indexes.
- index:field:vector:hnsw_m_out_of_range
- The HNSW neighbour count `m` is outside the range the engine builds.
- index:field:vector:hnsw_ef_construction_out_of_range
- The HNSW `ef_construction` is outside the range the engine builds.
- index:field:vector:multiple_unsupported
- A vector field is `multiple`. A vector field holds one vector per document.
- index:field:vector:locales_unsupported
- A vector field is locale specific.
- index:field:vector:filter_unsupported
- A vector field is declared for `filter`. Search a vector field with a `knn` clause.
- index:field:object:fields_required
- An object field declares no fields.
- index:field:object:usage_unsupported
- An object field is declared for a usage it holds no value of its own to answer.
- index:field:object:inner_usage_unsupported
- A field inside an object is declared for a usage that is not supported there.
- index:field:object:mode_required
- A list of objects declares no `mode`. Use `nested` when a search asks that conditions hold inside one value, `flattened` when the values are only structure.
- index:field:object:mode_without_multiple
- A single object declares a `mode`, which applies only together with `multiple`.
- index:field:object:nested_in_nested
- A nested list of objects sits below another nested list. Keep the inner list `flattened`, or lift it out.
- index:field:object:flattened_sort_unsupported
- A field inside a flattened list of objects is declared for `sort`.
- index:field:object:flattened_stored_unsupported
- A field inside a flattened list of objects is declared for `stored`.
- index:field:object:key_without_multiple
- A single object declares a `key`, which applies only together with `multiple`.
- index:field:object:key_unknown
- The `key` of an object field names a field the object does not hold.
- index:field:object:key_invalid
- The `key` of an object field names a field that cannot say which value is which.
- index:ranking:field_unknown
- A tie-breaker names a field the definition does not declare.
- index:ranking:wildcard_unsupported
- A tie-breaker names fields with a wildcard. A tie-breaker orders by one field.
- index:ranking:field_not_sortable
- A tie-breaker names a field that is not defined for sorting.
- index:ranking:field_duplicate
- Two tie-breakers name the same field.
- index:ranking:signal:field_unknown
- A ranking signal names a field the definition does not declare.
- index:ranking:signal:wildcard_unsupported
- A ranking signal names fields with a wildcard. A signal reads one field.
- index:ranking:signal:field_not_sortable
- A ranking signal names a field that is not defined for sorting, so it holds no value to read.
- index:ranking:signal:shape_required
- A ranking signal does not say how the value it reads counts.
- index:ranking:signal:shape_unsupported
- A ranking signal reads its field with a shape the type of the field holds nothing for.
- index:ranking:signal:pivot_out_of_range
- The `pivot` of a saturation signal is not a number above zero.
- index:ranking:signal:half_life_out_of_range
- The `halfLife` of a decay signal is not longer than nothing.
- index:ranking:signal:ceiling_out_of_range
- The `ceiling` of a linear signal is not a number above zero.
- index:ranking:signal:weight_out_of_range
- The `weight` of a ranking signal is below zero.
- index:name_invalid
- The name in the path is not a valid index name.
- index:generation:name_invalid
- The name in the path names a generation that is not a valid generation name.
- index:generation:not_creatable
- The name in the path names a generation of an index that does not exist. Create the index first.
WWW-Authenticate: Bearer.ErrorResponse
The body of every failed request. Error codes use colon-separated namespaces such as index:field:name_invalid, are stable across API versions, and are never renamed or reused, so clients match on code rather than on message. See Errors.
codestringvalidation and the individual problems are listed in errors. For all other failures, this matches the code of the single entry in errors."validation"messagestringcode rather than on message. When a validation failure contains one problem, this is that problem's message. When it contains several, it reads Request contains N errors."Request contains 2 errors"errorsErrorDetail[]Example
{ "code": "index:field:primary_key:multiple_unsupported", "message": "Field `id` is marked as a primary key and multiple, primary keys can not have multiple values", "path": "id"}4 properties
codestring"index:field:primary_key:multiple_unsupported"messagestring"Field `id` is marked as a primary key and multiple, primary keys can not have multiple values"pathstringfields.title or documents[1].nonexistent. Names join with ., one element of a list reads [n] counted from zero, and a key of a free-form map such as metadata goes in brackets and double quotes when it holds a dot or a bracket, as metadata["build.sha"]. A field inside an object field carries its own dotted path, so a path here reaches a field the same way a query does. Omitted when the problem applies to the request as a whole. See API conventions."id"argumentsmap of string1 property
<key>stringError codes
- auth:unauthenticated
- The request carries no credential this node accepts.
indexes.write permission.ErrorResponse
The body of every failed request. Error codes use colon-separated namespaces such as index:field:name_invalid, are stable across API versions, and are never renamed or reused, so clients match on code rather than on message. See Errors.
codestringvalidation and the individual problems are listed in errors. For all other failures, this matches the code of the single entry in errors."validation"messagestringcode rather than on message. When a validation failure contains one problem, this is that problem's message. When it contains several, it reads Request contains N errors."Request contains 2 errors"errorsErrorDetail[]Example
{ "code": "index:field:primary_key:multiple_unsupported", "message": "Field `id` is marked as a primary key and multiple, primary keys can not have multiple values", "path": "id"}4 properties
codestring"index:field:primary_key:multiple_unsupported"messagestring"Field `id` is marked as a primary key and multiple, primary keys can not have multiple values"pathstringfields.title or documents[1].nonexistent. Names join with ., one element of a list reads [n] counted from zero, and a key of a free-form map such as metadata goes in brackets and double quotes when it holds a dot or a bracket, as metadata["build.sha"]. A field inside an object field carries its own dotted path, so a path here reaches a field the same way a query does. Omitted when the problem applies to the request as a whole. See API conventions."id"argumentsmap of string1 property
<key>stringError codes
- auth:forbidden
- The key is accepted but does not hold the `indexes.write` permission.
If-Match was sent for an index that does not exist, books@2 named an index that does not exist, or the key has no grant covering the name.ErrorResponse
The body of every failed request. Error codes use colon-separated namespaces such as index:field:name_invalid, are stable across API versions, and are never renamed or reused, so clients match on code rather than on message. See Errors.
codestringvalidation and the individual problems are listed in errors. For all other failures, this matches the code of the single entry in errors."validation"messagestringcode rather than on message. When a validation failure contains one problem, this is that problem's message. When it contains several, it reads Request contains N errors."Request contains 2 errors"errorsErrorDetail[]Example
{ "code": "index:field:primary_key:multiple_unsupported", "message": "Field `id` is marked as a primary key and multiple, primary keys can not have multiple values", "path": "id"}4 properties
codestring"index:field:primary_key:multiple_unsupported"messagestring"Field `id` is marked as a primary key and multiple, primary keys can not have multiple values"pathstringfields.title or documents[1].nonexistent. Names join with ., one element of a list reads [n] counted from zero, and a key of a free-form map such as metadata goes in brackets and double quotes when it holds a dot or a bracket, as metadata["build.sha"]. A field inside an object field carries its own dotted path, so a path here reaches a field the same way a query does. Omitted when the problem applies to the request as a whole. See API conventions."id"argumentsmap of string1 property
<key>stringError codes
- index:not_found
- The name belongs to no index, or the key holds no grant covering it.
index:definition:incompatible), the stored definition contains settings this API version cannot represent (index:definition:unrepresentable), the index requires engine features this node does not have (index:unsupported), a reindex job is already running (reindex:in_progress), storage holds a generation under the new name that nothing deleted (index:generation:storage_held), no node is available to write the index (indexer:unavailable), or the registry write failed.ErrorResponse
The body of every failed request. Error codes use colon-separated namespaces such as index:field:name_invalid, are stable across API versions, and are never renamed or reused, so clients match on code rather than on message. See Errors.
codestringvalidation and the individual problems are listed in errors. For all other failures, this matches the code of the single entry in errors."validation"messagestringcode rather than on message. When a validation failure contains one problem, this is that problem's message. When it contains several, it reads Request contains N errors."Request contains 2 errors"errorsErrorDetail[]Example
{ "code": "index:field:primary_key:multiple_unsupported", "message": "Field `id` is marked as a primary key and multiple, primary keys can not have multiple values", "path": "id"}4 properties
codestring"index:field:primary_key:multiple_unsupported"messagestring"Field `id` is marked as a primary key and multiple, primary keys can not have multiple values"pathstringfields.title or documents[1].nonexistent. Names join with ., one element of a list reads [n] counted from zero, and a key of a free-form map such as metadata goes in brackets and double quotes when it holds a dot or a bracket, as metadata["build.sha"]. A field inside an object field carries its own dotted path, so a path here reaches a field the same way a query does. Omitted when the problem applies to the request as a whole. See API conventions."id"argumentsmap of string1 property
<key>stringError codes
- index:field:type_unrepresentable
- The stored definition holds a field of a type this API version cannot describe, which a `PUT` would discard. The `name` argument names the field.
- index:no_live_generation
- The index has no live generation. Promote one and send the request again.
- index:definition:incompatible
- The definition conflicts with documents already stored in the generation. Write the change to a new generation.
- index:definition:unrepresentable
- The stored definition holds settings this API version cannot describe.
- index:unsupported
- The index needs engine features this node does not have.
- reindex:in_progress
- A reindex job is already running for the index.
- index:generation:storage_held
- Storage holds a generation under the new name that nothing deleted. Repair the registry, or remove its objects.
- indexer:unavailable
- No node is available to write the index. Send the request again once one is.
- storage:conflict
- The registry kept being written by other nodes. Send the request again.
- index:already_exists
- The index was created by another request while this one was creating it. Send the request again to replace it.
- index:generation:already_exists
- The generation was created by another request while this one was creating it.
- index:definition:analysis_changed
- The definition changes how a usage reads a field the generation already holds documents for. Carried inside `index:definition:incompatible`.
- index:definition:setting_changed
- The definition changes a setting that decides what was written for the documents the generation holds. Carried inside `index:definition:incompatible`.
- index:definition:usage_added
- The definition turns on a usage that writes something the documents the generation holds do not have. Carried inside `index:definition:incompatible`.
- index:definition:source_added
- The definition starts keeping a copy of each document, which the documents the generation holds were stored without. Carried inside `index:definition:incompatible`.
- index:definition:locale_fallback_changed
- The definition changes the locale fallback that decided which locales were filled in for the documents the generation holds. Carried inside `index:definition:incompatible`.
If-Match version does not match the stored definition. Re-read the index and rebuild the change against the new version.ErrorResponse
The body of every failed request. Error codes use colon-separated namespaces such as index:field:name_invalid, are stable across API versions, and are never renamed or reused, so clients match on code rather than on message. See Errors.
codestringvalidation and the individual problems are listed in errors. For all other failures, this matches the code of the single entry in errors."validation"messagestringcode rather than on message. When a validation failure contains one problem, this is that problem's message. When it contains several, it reads Request contains N errors."Request contains 2 errors"errorsErrorDetail[]Example
{ "code": "index:field:primary_key:multiple_unsupported", "message": "Field `id` is marked as a primary key and multiple, primary keys can not have multiple values", "path": "id"}4 properties
codestring"index:field:primary_key:multiple_unsupported"messagestring"Field `id` is marked as a primary key and multiple, primary keys can not have multiple values"pathstringfields.title or documents[1].nonexistent. Names join with ., one element of a list reads [n] counted from zero, and a key of a free-form map such as metadata goes in brackets and double quotes when it holds a dot or a bracket, as metadata["build.sha"]. A field inside an object field carries its own dotted path, so a path here reaches a field the same way a query does. Omitted when the problem applies to the request as a whole. See API conventions."id"argumentsmap of string1 property
<key>stringError codes
- index:version_mismatch
- The `If-Match` version is not the one the stored definition is at. Read the index again and rebuild the change.
ErrorResponse
The body of every failed request. Error codes use colon-separated namespaces such as index:field:name_invalid, are stable across API versions, and are never renamed or reused, so clients match on code rather than on message. See Errors.
codestringvalidation and the individual problems are listed in errors. For all other failures, this matches the code of the single entry in errors."validation"messagestringcode rather than on message. When a validation failure contains one problem, this is that problem's message. When it contains several, it reads Request contains N errors."Request contains 2 errors"errorsErrorDetail[]Example
{ "code": "index:field:primary_key:multiple_unsupported", "message": "Field `id` is marked as a primary key and multiple, primary keys can not have multiple values", "path": "id"}4 properties
codestring"index:field:primary_key:multiple_unsupported"messagestring"Field `id` is marked as a primary key and multiple, primary keys can not have multiple values"pathstringfields.title or documents[1].nonexistent. Names join with ., one element of a list reads [n] counted from zero, and a key of a free-form map such as metadata goes in brackets and double quotes when it holds a dot or a bracket, as metadata["build.sha"]. A field inside an object field carries its own dotted path, so a path here reaches a field the same way a query does. Omitted when the problem applies to the request as a whole. See API conventions."id"argumentsmap of string1 property
<key>stringError codes
- indexer:unreachable
- The request was forwarded to the index writer and the writer did not answer. Send it again.
ErrorResponse
The body of every failed request. Error codes use colon-separated namespaces such as index:field:name_invalid, are stable across API versions, and are never renamed or reused, so clients match on code rather than on message. See Errors.
codestringvalidation and the individual problems are listed in errors. For all other failures, this matches the code of the single entry in errors."validation"messagestringcode rather than on message. When a validation failure contains one problem, this is that problem's message. When it contains several, it reads Request contains N errors."Request contains 2 errors"errorsErrorDetail[]Example
{ "code": "index:field:primary_key:multiple_unsupported", "message": "Field `id` is marked as a primary key and multiple, primary keys can not have multiple values", "path": "id"}4 properties
codestring"index:field:primary_key:multiple_unsupported"messagestring"Field `id` is marked as a primary key and multiple, primary keys can not have multiple values"pathstringfields.title or documents[1].nonexistent. Names join with ., one element of a list reads [n] counted from zero, and a key of a free-form map such as metadata goes in brackets and double quotes when it holds a dot or a bracket, as metadata["build.sha"]. A field inside an object field carries its own dotted path, so a path here reaches a field the same way a query does. Omitted when the problem applies to the request as a whole. See API conventions."id"argumentsmap of string1 property
<key>stringError codes
- index:closed
- The request raced the index being closed. Sending it again reopens the index.
Authorization
- Permission
- indexes.write
- Checked on
- The index the path names
- Roles
admin
An API key sent as a bearer token, such as Authorization: Bearer exok_4ff6b760264c1918_ePQcdT1O9HSATZoXfDbT8hhHGsP9VpZH. A key carries grants that pair permissions with index patterns; the permission each endpoint needs is named beside it. Nodes running with EXOFIND_AUTH_MODE=none accept requests without a credential, and a node with EXOFIND_AUTH_ANONYMOUS_KEY set serves requests that carry none with the permissions of that key.
Exofind is built by Level Four AB and is available under the Apache License 2.0.