WARNING: Version 6.1 of Elasticsearch has passed its EOL date.
This documentation is no longer being maintained and may be removed. If you are running this version, we strongly advise you to upgrade. For the latest information, see the current release documentation.
Put Mapping
editPut Mapping
editThe PUT mapping API allows you to add a new type to an existing index, or add new fields to an existing type:
PUT twitter {} PUT twitter/_mapping/user { "properties": { "name": { "type": "text" } } } PUT twitter/_mapping/user { "properties": { "email": { "type": "keyword" } } }
Creates an index called |
|
Uses the PUT mapping API to add a new mapping type called |
|
Uses the PUT mapping API to add a new field called |
More information on how to define type mappings can be found in the mapping section.
Multi-index
editThe PUT mapping API can be applied to multiple indices with a single request.
For example, we can update the twitter-1
and twitter-2
mappings at the same time:
# Create the two indices PUT twitter-1 PUT twitter-2 # Update both mappings PUT /twitter-1,twitter-2/_mapping/my_type { "properties": { "user_name": { "type": "text" } } }
Note that the indices specified ( |
When updating the _default_
mapping with the
PUT mapping API, the new mapping is not merged with
the existing mapping. Instead, the new _default_
mapping replaces the
existing one.
Updating field mappings
editIn general, the mapping for existing fields cannot be updated. There are some exceptions to this rule. For instance:
-
new
properties
can be added to Object datatype fields. - new multi-fields can be added to existing fields.
-
the
ignore_above
parameter can be updated.
For example:
PUT my_index { "mappings": { "user": { "properties": { "name": { "properties": { "first": { "type": "text" } } }, "user_id": { "type": "keyword" } } } } } PUT my_index/_mapping/user { "properties": { "name": { "properties": { "last": { "type": "text" } } }, "user_id": { "type": "keyword", "ignore_above": 100 } } }
Create an index with a |
|
Add a |
|
Update the |
Each mapping parameter specifies whether or not its setting can be updated on an existing field.