| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798 | [[enabled]]=== `enabled`Elasticsearch tries to index all of the fields you give it, but sometimes youwant to just store the field without indexing it.  For instance, imagine thatyou are using Elasticsearch as a web session store.  You may want to index thesession ID and last update time, but you don't need to query or runaggregations on the session data itself.The `enabled` setting, which can be applied only to the mapping type and to<<object,`object`>> fields, causes Elasticsearch to skip parsing of thecontents of the field entirely.  The JSON can still be retrieved from the<<mapping-source-field,`_source`>> field, but it is not searchable or storedin any other way:[source,js]--------------------------------------------------PUT my_index{  "mappings": {    "session": {      "properties": {        "user_id": {          "type":  "keyword"        },        "last_updated": {          "type": "date"        },        "session_data": { <1>          "enabled": false        }      }    }  }}PUT my_index/session/session_1{  "user_id": "kimchy",  "session_data": { <2>    "arbitrary_object": {      "some_array": [ "foo", "bar", { "baz": 2 } ]    }  },  "last_updated": "2015-12-06T18:20:22"}PUT my_index/session/session_2{  "user_id": "jpountz",  "session_data": "none", <3>  "last_updated": "2015-12-06T18:22:13"}--------------------------------------------------// CONSOLE<1> The `session_data` field is disabled.<2> Any arbitrary data can be passed to the `session_data` field as it will be entirely ignored.<3> The `session_data` will also ignore values that are not JSON objects.The entire mapping type may be disabled as well, in which case the document isstored in the <<mapping-source-field,`_source`>> field, which means it can beretrieved, but none of its contents are indexed in any way:[source,js]--------------------------------------------------PUT my_index{  "mappings": {    "session": { <1>      "enabled": false    }  }}PUT my_index/session/session_1{  "user_id": "kimchy",  "session_data": {    "arbitrary_object": {      "some_array": [ "foo", "bar", { "baz": 2 } ]    }  },  "last_updated": "2015-12-06T18:20:22"}GET my_index/session/session_1 <2>GET my_index/_mapping <3>--------------------------------------------------// CONSOLE<1> The entire `session` mapping type is disabled.<2> The document can be retrieved.<3> Checking the mapping reveals that no fields have been added.TIP: The `enabled` setting is allowed to have different settings for fields ofthe same name in the same index.  Its value can be updated on existing fieldsusing the <<indices-put-mapping,PUT mapping API>>.
 |