WARNING: Version 1.4 of Elasticsearch has passed its EOL date.
This documentation is no longer being maintained and may be removed. If you are running this version, we strongly advise you to upgrade. For the latest information, see the current release documentation.
_id
edit_id
editEach document indexed is associated with an id and a type. The _id
field can be used to index just the id, and possible also store it. By
default it is not indexed and not stored (thus, not created).
Note, even though the _id
is not indexed, all the APIs still work
(since they work with the _uid
field), as well as fetching by ids
using term
, terms
or prefix
queries/filters (including the
specific ids
query/filter).
The _id
field can be enabled to be indexed, and possibly stored,
using the appropriate mapping attributes:
{ "tweet" : { "_id" : { "index" : "not_analyzed", "store" : true } } }
The _id
mapping can also be associated with a path
that will be used
to extract the id from a different location in the source document. For
example, having the following mapping:
{ "tweet" : { "_id" : { "path" : "post_id" } } }
Will cause 1
to be used as the id for:
{ "message" : "You know, for Search", "post_id" : "1" }
This does require an additional lightweight parsing step while indexing, in order to extract the id to decide which shard the index operation will be executed on.