OpenSearch/docs/reference/mapping/fields/id-field.asciidoc
Sergii Golubev 0fb81d6643 Docs: Update id-field.asciidoc
It is strange to provide an example with `"store" : false` when talking about possibility of enabling the field to be stored.
Broke the line in the mapping in two lines for better readability.
More verbose sentence above the mapping.

Closes #7894
2014-10-17 15:17:24 +02:00

56 lines
1.5 KiB
Plaintext

[[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 the appropriate mapping attributes:
[source,js]
--------------------------------------------------
{
"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:
[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.