三人行必有我师

elasticsearch查询

Elasticsearch | 作者 haitao | 发布于2019年02月26日 | 阅读数:1913

查询时只批量获取文档的id值,其他字段都是不存储的,_source关闭的,这时候查询请求在第一阶段query的时候取到的docid不会直接返回吗?还是会继续走fetch阶段再返回文档id
已邀请:

weizijun - elasticsearch fan

赞同来自: haitao

query取到的docid是lucene内部的id,fetch阶段根据lucene id去正排数据中找到对应es _uid,此处会产生多次io,如果是query_and_fetch,那会fetch后需要merge 每个shard的数据,相对query_then_fetch会产生更多的io,所以es现在都支持query_and_fetch了

haitao - 奔跑的90后

赞同来自:

谢谢啦,我在elasticsearch-head上查询3000条数据只需要0.014ms,可是用高级客户端查询却需要3000ms,有点不理解,请指教

要回复问题请先登录注册