| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899 | [[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":  "string",          "index": "not_analyzed"        },        "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"}--------------------------------------------------// AUTOSENSE<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>--------------------------------------------------// AUTOSENSE<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>>.
 |