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
-
If
false, the request returns an error if any wildcard expression, index alias, or_allvalue targets only missing or closed indices. This behavior applies even if the request targets other open indices. -
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"
}
}
}
}
}