| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192 | [[dynamic]]=== `dynamic`When you index a document containing a new field, {es} <<dynamic-mapping,adds the field dynamically>> to a document or to inner objects within a document. Thefollowing document adds the string field `username`, the object field`name`, and two string fields under the `name` object:[source,console]----PUT my-index-000001/_doc/1{  "username": "johnsmith",  "name": { <1>    "first": "John",    "last": "Smith"  }}GET my-index-000001/_mapping <2>----<1> Refer to fields under the `name` object as `name.first` and `name.last`.<2> Check the mapping to view changes.The following document adds two string fields: `email` and `name.middle`:[source,console]----PUT my-index-000001/_doc/2{  "username": "marywhite",  "email": "mary@white.com",  "name": {    "first": "Mary",    "middle": "Alice",    "last": "White"  }}GET my-index-000001/_mapping----[[dynamic-inner-objects]]==== Setting `dynamic` on inner objects<<object,Inner objects>> inherit the `dynamic` setting from their parentobject or from the mapping type. In the following example, dynamic mapping isdisabled at the type level, so no new top-level fields will be addeddynamically.However, the `user.social_networks` object enables dynamic mapping, so you canadd fields to this inner object.[source,console]----PUT my-index-000001{  "mappings": {    "dynamic": false, <1>    "properties": {      "user": { <2>        "properties": {          "name": {            "type": "text"          },          "social_networks": {            "dynamic": true, <3>            "properties": {}          }        }      }    }  }}----<1> Disables dynamic mapping at the type level.<2> The `user` object inherits the type-level setting.<3> Enables dynamic mapping for this inner object.[[dynamic-parameters]]==== Parameters for `dynamic`The `dynamic` parameter controls whether new fields are added dynamically, andaccepts the following parameters:[horizontal]`true`::    New fields are added to the mapping (default).`runtime`:: New fields are added to the mapping as <<runtime,runtime fields>>.            These fields are not indexed, and are loaded from `_source` at query time.`false`::   New fields are ignored. These fields will not be indexed            or searchable, but will still appear in the `_source` field of returned hits. These fields will not be added            to the mapping, and new fields must be added explicitly.`strict`::  If new fields are detected, an exception is thrown and the document            is rejected. New fields  must be explicitly added to the mapping.
 |