12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152 |
- [[mapping-id-field]]
- === `_id`
- Each 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:
- [source,js]
- --------------------------------------------------
- {
- "tweet" : {
- "_id" : {"index": "not_analyzed", "store" : false }
- }
- }
- --------------------------------------------------
- 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:
- [source,js]
- --------------------------------------------------
- {
- "tweet" : {
- "_id" : {
- "path" : "post_id"
- }
- }
- }
- --------------------------------------------------
- Will cause `1` to be used as the id for:
- [source,js]
- --------------------------------------------------
- {
- "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.
|