123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172 |
- [[mapping-store]]
- === `store`
- By default, field values are <<mapping-index,indexed>> to make them searchable,
- but they are not _stored_. This means that the field can be queried, but the
- original field value cannot be retrieved.
- Usually this doesn't matter. The field value is already part of the
- <<mapping-source-field,`_source` field>>, which is stored by default. If you
- only want to retrieve the value of a single field or of a few fields, instead
- of the whole `_source`, then this can be achieved with
- <<search-request-source-filtering,source filtering>>.
- In certain situations it can make sense to `store` a field. For instance, if
- you have a document with a `title`, a `date`, and a very large `content`
- field, you may want to retrieve just the `title` and the `date` without having
- to extract those fields from a large `_source` field:
- [source,js]
- --------------------------------------------------
- PUT my_index
- {
- "mappings": {
- "my_type": {
- "properties": {
- "title": {
- "type": "text",
- "store": true <1>
- },
- "date": {
- "type": "date",
- "store": true <1>
- },
- "content": {
- "type": "text"
- }
- }
- }
- }
- }
- PUT my_index/my_type/1
- {
- "title": "Some short title",
- "date": "2015-01-01",
- "content": "A very long content field..."
- }
- GET my_index/_search
- {
- "stored_fields": [ "title", "date" ] <2>
- }
- --------------------------------------------------
- // CONSOLE
- <1> The `title` and `date` fields are stored.
- <2> This request will retrieve the values of the `title` and `date` fields.
- [NOTE]
- .Stored fields returned as arrays
- ======================================
- For consistency, stored fields are always returned as an _array_ because there
- is no way of knowing if the original field value was a single value, multiple
- values, or an empty array.
- If you need the original value, you should retrieve it from the `_source`
- field instead.
- ======================================
- Another situation where it can make sense to make a field stored is for those
- that don't appear in the `_source` field (such as <<copy-to,`copy_to` fields>>).
|