1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465 |
- [[mapping-dynamic-mapping]]
- == Dynamic Mapping
- Default mappings allow to automatically apply generic mapping definitions
- to types that do not have mappings predefined. This is mainly done
- thanks to the fact that the
- <<mapping-object-type,object mapping>> and
- namely the <<mapping-root-object-type,root
- object mapping>> allow for schema-less dynamic addition of unmapped
- fields.
- The default mapping definition is a plain mapping definition that is
- embedded within the distribution:
- [source,js]
- --------------------------------------------------
- {
- "_default_" : {
- }
- }
- --------------------------------------------------
- Pretty short, isn't it? Basically, everything is defaulted, especially the
- dynamic nature of the root object mapping. The default mapping
- definition can be overridden in several manners. The simplest manner is
- to simply define a file called `default-mapping.json` and to place it
- under the `config` directory (which can be configured to exist in a
- different location). It can also be explicitly set using the
- `index.mapper.default_mapping_location` setting.
- The dynamic creation of mappings for unmapped types can be completely
- disabled by setting `index.mapper.dynamic` to `false`.
- The dynamic creation of fields within a type can be completely
- disabled by setting the `dynamic` property of the type to `strict`.
- Here is a <<indices-put-mapping,Put Mapping>> example that
- disables dynamic field creation for a `tweet`:
- [source,js]
- --------------------------------------------------
- $ curl -XPUT 'http://localhost:9200/twitter/tweet/_mapping' -d '
- {
- "tweet" : {
- "dynamic": "strict",
- "properties" : {
- "message" : {"type" : "string", "store" : true }
- }
- }
- }
- '
- --------------------------------------------------
- Here is how we can change the default
- <<mapping-date-format,date_formats>> used in the
- root and inner object types:
- [source,js]
- --------------------------------------------------
- {
- "_default_" : {
- "date_formats" : ["yyyy-MM-dd", "dd-MM-yyyy", "date_optional_time"]
- }
- }
- --------------------------------------------------
|