_uid field

edit

Deprecated in 6.0.0.

Now that types have been removed, documents are uniquely identified by their _id and the _uid field has only been kept as a view over the _id field for backward compatibility.

Each document indexed is associated with a _type (see Mapping Type) and an _id. These values are combined as {type}#{id} and indexed as the _uid field.

The value of the _uid field is accessible in queries, aggregations, scripts, and when sorting:

# Example documents
PUT my_index/_doc/1
{
  "text": "Document with ID 1"
}

PUT my_index/_doc/2?refresh=true
{
  "text": "Document with ID 2"
}
GET my_index/_search
{
  "query": {
    "terms": {
      "_uid": [ "_doc#1", "_doc#2" ] 
    }
  },
  "aggs": {
    "UIDs": {
      "terms": {
        "field": "_uid", 
        "size": 10
      }
    }
  },
  "sort": [
    {
      "_uid": { 
        "order": "desc"
      }
    }
  ],
  "script_fields": {
    "UID": {
      "script": {
         "lang": "painless",
         "source": "doc['_uid']" 
      }
    }
  }
}

Querying on the _uid field (also see the ids query)

Aggregating on the _uid field

Sorting on the _uid field

Accessing the _uid field in scripts