Add new fields to an existing data stream or index. You can use the update mapping API to:
- Add a new field to an existing index
- Update mappings for multiple indices in a single request
- Add new properties to an object field
- Enable multi-fields for an existing field
- Update supported mapping parameters
- Change a field's mapping using reindexing
- Rename a field using a field alias
Learn how to use the update mapping API with practical examples in the Update mapping API examples guide.
Required authorization
- Index privileges:
manage
Path parameters
-
A comma-separated list of index names the mapping should be added to (supports wildcards). Use
_allor omit to add the mapping on all indices.
Query parameters
-
A setting that does two separate checks on the index expression. If
false, the request returns an error (1) if any wildcard expression (including_alland*) resolves to zero matching indices or (2) if the complete set of resolved indices, aliases or data streams is empty after all expressions are evaluated. Iftrue, index expressions that resolve to no indices are allowed and the request returns an empty result. -
Type of index that wildcard patterns can match. If the request can target data streams, this argument determines whether wildcard expressions match hidden data streams. Supports comma-separated values, such as
open,hidden.Values are
all,open,closed,hidden, ornone. -
Period to wait for a connection to the master node. If no response is received before the timeout expires, the request fails and returns an error.
Values are
-1or0.External documentation -
Period to wait for a response. If no response is received before the timeout expires, the request fails and returns an error.
Values are
-1or0.External documentation -
If
true, the mappings are applied only to the current write index for the target.
Body
Required
-
Controls whether dynamic date detection is enabled.
-
Controls whether new fields are added dynamically.
Values are
strict,runtime,true, orfalse. -
If date detection is enabled then new string fields are checked against 'dynamic_date_formats' and if the value matches then a new date field is added instead of string.
-
Specify dynamic templates for the mapping.
-
Control whether field names are enabled for the index.
-
A mapping type can have custom meta data associated with it. These are not used at all by Elasticsearch, but can be used to store application-specific metadata.
-
Automatically map strings into numeric data types for all fields.
Default value is
false. -
Mapping for a field. For new fields, this mapping can include:
- Field name
- Field data type
- Mapping parameters
-
Enable making a routing value required on indexed documents.
-
Control whether the _source field is enabled on the index.
-
Mapping of runtime fields for the index.
curl \
--request PUT 'http://api.example.com/{index}/_mapping' \
--header "Content-Type: application/json" \
--data '"{\n \"properties\": {\n \"user\": {\n \"properties\": {\n \"name\": {\n \"type\": \"keyword\"\n }\n }\n }\n }\n}"'
{
"properties": {
"user": {
"properties": {
"name": {
"type": "keyword"
}
}
}
}
}