这篇文章主要讨论一下ElasticSearch数据检索内部流程,方便大家对数据检索的理解。如果对ElasticSearch的文档写入不了解的同学可以先看一下上一篇文章【从0到1了解ElasticSearch文档写入】。
主要流程如下:
GET /_search
{
"query" : {
"term" : { "user" : "kimchy" }
}
}
协调节向这个索引的所有分片发送search请求,每个分片执行数据检索,最后协调节点将数据返回给客户端,核心流程如下:
搜索两阶段:query phase 和 fetch phase,分别对应倒排数据和正排数据,query phase返回的是docIds,fetch phase就是Get操作;
两阶段相应的实现位置:
查询(Query)阶段 ---- search.InitialSearchPhase
取回(Fetch )阶段 ---- search.FetchSearchPhase
都继承自SearchPhase
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。