WARNING: Version 5.4 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.
Dynamic Mapping
editDynamic Mapping
editOne of the most important features of Elasticsearch is that it tries to get out of your way and let you start exploring your data as quickly as possible. To index a document, you don’t have to first create an index, define a mapping type, and define your fields — you can just index a document and the index, type, and fields will spring to life automatically:
The automatic detection and addition of new types and fields is called dynamic mapping. The dynamic mapping rules can be customised to suit your purposes with:
-
_default_
mapping - Configure the base mapping to be used for new mapping types.
- Dynamic field mappings
- The rules governing dynamic field detection.
- Dynamic templates
- Custom rules to configure the mapping for dynamically added fields.
Index templates allow you to configure the default mappings, settings and aliases for new indices, whether created automatically or explicitly.
Disabling automatic type creation
editAutomatic type creation can be disabled per-index by setting the index.mapper.dynamic
setting to false
in the index settings:
Automatic type creation can also be disabled for all indices by setting an index template:
PUT _template/template_all { "template": "*", "order":0, "settings": { "index.mapper.dynamic": false } }
Regardless of the value of this setting, types can still be added explicitly when creating an index or with the PUT mapping API.