[[mapping-id-field]] === `_id` field Each document has an `_id` that uniquely identifies it, which is indexed so that documents can be looked up either with the <> or the <>. The `_id` can either be assigned at indexing time, or a unique `_id` can be generated by {es}. This field is not configurable in the mappings. The value of the `_id` field is accessible in queries such as `term`, `terms`, `match`, and `query_string`. [source,console] -------------------------- # Example documents PUT my-index-000001/_doc/1 { "text": "Document with ID 1" } PUT my-index-000001/_doc/2?refresh=true { "text": "Document with ID 2" } GET my-index-000001/_search { "query": { "terms": { "_id": [ "1", "2" ] <1> } } } -------------------------- <1> Querying on the `_id` field (also see the <>) The `_id` field is restricted from use in aggregations, sorting, and scripting. In case sorting or aggregating on the `_id` field is required, it is advised to duplicate the content of the `_id` field into another field that has `doc_values` enabled. [NOTE] ================================================== `_id` is limited to 512 bytes in size and larger values will be rejected. ==================================================