| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697 | [[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": {    "_doc": {      "properties": {        "user_id": {          "type":  "keyword"        },        "last_updated": {          "type": "date"        },        "session_data": { <1>          "enabled": false        }      }    }  }}PUT my_index/_doc/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/_doc/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": {    "_doc": { <1>      "enabled": false    }  }}PUT my_index/_doc/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/_doc/session_1 <2>GET my_index/_mapping <3>--------------------------------------------------// CONSOLE<1> The entire `_doc` 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 can be updated on existing fieldsusing the <<indices-put-mapping,PUT mapping API>>.
 |