GET API
1.Request
GET <index>/_doc/<_id>
HEAD <index>/_doc/<_id>
GET <index>/_source/<_id>
HEAD <index>/_source/<_id>
Source filtering
默认返回source,可以指定不返。
GET my-index-000001/_doc/0?_source=false
也可以指定source只包含某些字段,并且排查某些字段。
GET my-index-000001/_doc/0?_source_includes=*.id&_source_excludes=entities
Routing
If routing is used during indexing, the routing value also needs to be specified to retrieve a document. This request gets the document with id 2, but it is routed based on the user. The document is not fetched if the correct routing is not specified.
GET my-index-000001/_doc/2?routing=user1
2.Quert parameters
preference
(Optional, string) Specifies the node or shard the operation should be performed on. Random by default.
GET /cdns_isp_m5_reqnum_20210326/_doc/3991c6eae76551aa9fbe6021beceae4c?_source=false&preference=_local
realtime
(Optional, Boolean) If true
, the request is real-time as opposed to near-real-time. Defaults to true
. See Realtime.
refresh
(Optional, Boolean) If true, Elasticsearch refreshes the affected shards to make this operation visible to search. If false, do nothing with refreshes. Defaults to false.
routing
(Optional, string) Target the specified primary shard.
stored_fields
(Optional, Boolean) If true, retrieves the document fields stored in the index rather than the document _source. Defaults to false.
_source
(Optional, string) True or false to return the _source field or not, or a list of fields to return.
_source_excludes
(Optional, string) A comma-separated list of source fields to exclude from the response.
You can also use this parameter to exclude fields from the subset specified in _source_includes query parameter.
If the _source parameter is false, this parameter is ignored.
_source_includes
(Optional, string) A comma-separated list of source fields to include in the response.
If this parameter is specified, only these source fields are returned. You can exclude fields from this subset using the _source_excludes query parameter.
If the _source parameter is false, this parameter is ignored.
version
(Optional, integer) Explicit version number for concurrency control. The specified version must match the current version of the document for the request to succeed.
version_type
(Optional, enum) Specific version type: internal, external, external_gte.
3.Response body
_index
The name of the index the document belongs to.
_type
The document type. Elasticsearch indices now support a single document type, _doc.
_id
The unique identifier for the document.
_version
The document version. Incremented each time the document is updated.
_seq_no
The sequence number assigned to the document for the indexing operation. Sequence numbers are used to ensure an older version of a document doesn’t overwrite a newer version. See Optimistic concurrency control.
_primary_term
The primary term assigned to the document for the indexing operation. See Optimistic concurrency control.
found
Indicates whether the document exists: true or false.
_routing
The explicit routing, if set.
_source
If found is true, contains the document data formatted in JSON. Excluded if the _source parameter is set to false or the stored_fields parameter is set to true.
_fields
If the stored_fields parameter is set to true and found is true, contains the document fields stored in the index.
4.EXAMPLE
get stored fields
Use the stored_fields parameter to specify the set of stored fields you want to retrieve. Any requested fields that are not stored are ignored. Consider for instance the following mapping:
PUT my-index-000001
{
"mappings": {
"properties": {
"counter": {
"type": "integer",
"store": false
},
"tags": {
"type": "keyword",
"store": true
}
}
}
}
Now we can add a document:
PUT my-index-000001/_doc/1
{
"counter": 1,
"tags": [ "production" ]
}
then:
GET my-index-000001/_doc/1?stored_fields=tags,counter
API result:
{
"_index": "my-index-000001",
"_type": "_doc",
"_id": "1",
"_version": 1,
"_seq_no" : 22,
"_primary_term" : 1,
"found": true,
"fields": {
"tags": [
"production"
]
}
}
Field values fetched from the document itself are always returned as an array. Since the counter field is not stored, the get request ignores it.