GET查询模式
GET查询模型
默认采用自适应策略选择合适的分片。如果禁止自适应策略,则选择轮询策略。参考官网关于自适应副本选择策略的介绍。
GET查询内部机制
优先查询事务日志(translog),次之查询分段文件(segment)。
GET查询是实时的。
Get单条数据查询
单条数据检索查询,可选择元数据与源数据。
语法格式:
GET /{index}/_doc/{id}
GET /{index}/_source/{id}
HEAD /{index}/_doc/{id}
HEAD /{index}/_source/{id}
GET kibana_sample_data_flights/_doc/4orjR4IBnBKdCQOc6pkn
查询结果如下:
GET kibana_sample_data_flights/_source/4orjR4IBnBKdCQOc6pkn
查询结果如下:
HEAD kibana_sample_data_flights/_doc/4orjR4IBnBKdCQOc6pkn
查询结果如下:
HEAD kibana_sample_data_flights/_source/4orjR4IBnBKdCQOc6pkn
查询结果如下:
请求参数
preference
指定应该在哪个分片或者节点上执行操作。
_only_local
:只在本地节点的分片上执行查询操作。_local
:优先在本地节点的分片上执行查询操作。_only_nodes:<node-id>,<node-id>
:只在指定节点上执行查询操作。可以使用GET _cluster/state
获取节点的id_prefer_nodes:<node-id>,<node-id>
:优先在指定节点上执行查询操作。_shards:<shard>,<shard>
:只在指定分片上执行查询操作。可以与其它preference值结合使用,但是_shards要在前面,比如_shards:2,3|_local
。<custom-string>
:自定义字符串(不要以下划线开头)
GET kibana_sample_data_flights/_doc/4orjR4IBnBKdCQOc6pkn?preference=_shards:0|_only_nodes:2zhoUF-_SYG3ul7uhrlqQg,uKF13Pq-TVWF_PZolh3tsQ
查询结果如下:
realtime
指定请求是否是实时的。默认true。
PUT test
{
"settings": {
"refresh_interval": "30s"
}
}
PUT test/_doc/1
{
"counter": 1,
"tags": ["red"]
}
GET test/_doc/1?realtime=false
查询结果如下:
GET test/_doc/1?realtime
查询结果如下:
refresh
指定请求带来的变化何时对于搜索可见。默认false。
- 空字符串或者true
立即刷新相关的主分片和副本分片,使请求带来的变化对于搜索立即可见。 - wait_for
等待刷新,使请求带来的变化可见。Elasticsearch 通过设置 refresh_interval 控制刷新分片的间隔,默认1秒。该设置具有 动态性,调用 refresh API 的refresh
为true
,都会触发一次刷新。 - false
不执行与刷新相关的操作。请求所做的修改会在请求返回后的某个时间点可见。
routing
自定义路由值,用于路由到一个特定的分片上。
如果不指定,默认以文档id作为路由值。
shard = hash(routing) % number_of_primary_shards
stored_fields
获取存储在索引中的文档属性。
如果指定了 stored_fields
,_source
参数默认false。可以指定 _source
为true,在查询结果中返回存储在索引中的文档属性和source源数据。
PUT test
{
"mappings": {
"properties": {
"counter": {
"type": "integer",
"store": false
},
"tags": {
"type": "keyword",
"store": true
}
}
}
}
PUT test/_doc/1
{
"counter": 1,
"tags": ["red"]
}
GET test/_doc/1?stored_fields=counter,tags
查询结果如下:
GET test/_doc/1?stored_fields=counter,tags&_source=true
查询结果如下:
_source
查询结果中返回指定的源数据列表。默认true。
-
true
:返回所有的源数据列表。 -
false
:不返回源数据。 -
<string>
:返回指定的源数据列表。多个源数据用逗号分隔。支持通配符*。