Loading

Retrieve stored fields using the Get document API

Elastic Stack

Use the stored_fields query parameter in a Get document API request to retrieve fields marked as stored ("store": true) in the index mapping.

Fields not marked as stored are excluded from the response, even if specified in the request.

Tip

In most cases, the fields and _source parameters produce better results than stored_fields.

For example, these PUT requests define a stored field in the mapping and add a document:

 PUT my-index-000001 {
  "mappings": {
    "properties": {
      "counter": {
        "type": "integer",
        "store": false
      },
      "tags": {
        "type": "keyword",
        "store": true
      }
    }
  }
}
 PUT my-index-000001/_doc/1 {
  "counter": 1,
  "tags": [ "production" ]
}

This request retrieves the stored fields from the document:

 GET my-index-000001/_doc/1?stored_fields=tags,counter 

The API returns the following response:

{
  "_index": "my-index-000001",
  "_id": "1",
  "_version": 1,
  "_seq_no": 22,
  "_primary_term": 1,
  "found": true,
  "fields": {
    "tags": [
      "production"
    ]
  }
}

Although the counter field is specified in the request, it's not included in the response because it's not actually a stored field.

Field values are returned as an array.

Note

Only leaf fields can be retrieved with the stored_fields parameter. If you specify an object field instead, an error is returned.