123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293 |
- [[enabled]]
- === `enabled`
- Elasticsearch tries to index all of the fields you give it, but sometimes you
- want to just store the field without indexing it. For instance, imagine that
- you are using Elasticsearch as a web session store. You may want to index the
- session ID and last update time, but you don't need to query or run
- aggregations 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 the
- contents of the field entirely. The JSON can still be retrieved from the
- <<mapping-source-field,`_source`>> field, but it is not searchable or stored
- in any other way:
- [source,js]
- --------------------------------------------------
- PUT my_index
- {
- "mappings": {
- "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 is
- stored in the <<mapping-source-field,`_source`>> field, which means it can be
- retrieved, but none of its contents are indexed in any way:
- [source,js]
- --------------------------------------------------
- PUT my_index
- {
- "mappings": {
- "enabled": false <1>
- }
- }
- 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 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 fields
- using the <<indices-put-mapping,PUT mapping API>>.
|