_id fieldedit

Each document has an _id that uniquely identifies it, which is indexed so that documents can be looked up either with the GET API or the ids query.

The value of the _id field is accessible in certain queries (term, terms, match, query_string, simple_query_string).

resp = client.index(
    index="my_index", id="1", body={"text": "Document with ID 1"},
)
print(resp)

resp = client.index(
    index="my_index",
    id="2",
    refresh="true",
    body={"text": "Document with ID 2"},
)
print(resp)

resp = client.search(
    index="my_index", body={"query": {"terms": {"_id": ["1", "2"]}}},
)
print(resp)
response = client.index(
  index: 'my_index',
  id: 1,
  body: {
    text: 'Document with ID 1'
  }
)
puts response

response = client.index(
  index: 'my_index',
  id: 2,
  refresh: true,
  body: {
    text: 'Document with ID 2'
  }
)
puts response

response = client.index(
  index: 'my_index',
  body: {
    query: {
      terms: {
        _id: [
          '1',
          '2'
        ]
      }
    }
  }
)
puts response
{
	res, err := es.Index(
		"my_index",
		strings.NewReader(`{
	  "text": "Document with ID 1"
	}`),
		es.Index.WithDocumentID("1"),
		es.Index.WithPretty(),
	)
	fmt.Println(res, err)
}

{
	res, err := es.Index(
		"my_index",
		strings.NewReader(`{
	  "text": "Document with ID 2"
	}`),
		es.Index.WithDocumentID("2"),
		es.Index.WithRefresh("true"),
		es.Index.WithPretty(),
	)
	fmt.Println(res, err)
}

{
	res, err := es.Search(
		es.Search.WithIndex("my_index"),
		es.Search.WithBody(strings.NewReader(`{
	  "query": {
	    "terms": {
	      "_id": [
	        "1",
	        "2"
	      ]
	    }
	  }
	}`)),
		es.Search.WithPretty(),
	)
	fmt.Println(res, err)
}
const response0 = await client.index({
  index: 'my_index',
  id: '1',
  body: {
    text: 'Document with ID 1'
  }
})
console.log(response0)

const response1 = await client.index({
  index: 'my_index',
  id: '2',
  refresh: 'true',
  body: {
    text: 'Document with ID 2'
  }
})
console.log(response1)

const response2 = await client.search({
  index: 'my_index',
  body: {
    query: {
      terms: {
        _id: [
          '1',
          '2'
        ]
      }
    }
  }
})
console.log(response2)
# 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": {
      "_id": [ "1", "2" ] 
    }
  }
}

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

The value of the _id field is also accessible in aggregations or for sorting, but doing so is discouraged as it requires to load a lot of data in memory. In case sorting or aggregating on the _id field is required, it is advised to duplicate the content of the _id field in another field that has doc_values enabled.

_id is limited to 512 bytes in size and larger values will be rejected.