| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485 | [[dynamic-mapping]]== Dynamic MappingOne of the most important features of Elasticsearch is that it tries to getout 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 mappingtype, and define your fields -- you can just index a document and the index,type, and fields will spring to life automatically:[source,js]--------------------------------------------------PUT data/counters/1 <1>{ "count": 5 }--------------------------------------------------// CONSOLE<1> Creates the `data` index, the `counters` mapping type, and a field    called `count` with datatype `long`.The automatic detection and addition of new types and fields is called_dynamic mapping_. The dynamic mapping rules can be customised to suit yourpurposes with:<<default-mapping,`_default_` mapping>>::    Configure the base mapping to be used for new mapping types.<<dynamic-field-mapping,Dynamic field mappings>>::    The rules governing dynamic field detection.<<dynamic-templates,Dynamic templates>>::    Custom rules to configure the mapping for dynamically added fields.TIP: <<indices-templates,Index templates>> allow you to configure the defaultmappings, settings and aliases for new indices, whether createdautomatically or explicitly.[float]=== Disabling automatic type creationAutomatic type creation can be disabled per-index by setting the `index.mapper.dynamic`setting to `false` in the index settings:[source,js]--------------------------------------------------PUT data/_settings{  "index.mapper.dynamic":false <1>}--------------------------------------------------// CONSOLE// TEST[continued]<1> Disable automatic type creation for the index named "data".Automatic type creation can also be disabled for all indices by setting an index template:[source,js]--------------------------------------------------PUT _template/template_all{  "template": "*",  "order":0,  "settings": {    "index.mapper.dynamic": false <1>  }}--------------------------------------------------// CONSOLE// TEST[continued]<1> Disable automatic type creation for all indices.Regardless of the value of this setting, types can still be added explicitlywhen <<indices-create-index,creating an index>> or with the<<indices-put-mapping,PUT mapping>> API.include::dynamic/default-mapping.asciidoc[]include::dynamic/field-mapping.asciidoc[]include::dynamic/templates.asciidoc[]
 |