86 lines
2.5 KiB
Plaintext
86 lines
2.5 KiB
Plaintext
[[dynamic-mapping]]
|
|
== Dynamic Mapping
|
|
|
|
One 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:
|
|
|
|
[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 your
|
|
purposes 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 default
|
|
mappings, settings and aliases for new indices, whether created
|
|
automatically or explicitly.
|
|
|
|
|
|
[float]
|
|
=== Disabling automatic type creation
|
|
|
|
Automatic 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
|
|
{
|
|
"index_patterns": ["*"],
|
|
"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 explicitly
|
|
when <<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[]
|