当前位置:   article > 正文

ElasticSearch 源码分析十 ES搜索实现 Search(三)_elasticsearch fetchphase execute

elasticsearch fetchphase execute

fetch阶段的步骤 :通过文档id获取完整的文档内容

(1)首先对query结果进行排序,获取要fetch的doc id
(2)按shard把这些id填充到docIdsToLoad对象中
(3)按shard去elasticsearch获取文档详情,因为此时已经有了文档的id,所以就发送GET请求获取
(4)将第一步中已经排好序的文档与fetch到的结果按照顺序合并
(5)如果请求中有scroll,重新构建scroll id
(6)向调用方返回响应数据
(7)如果不是scroll请求,则释放search context

继续执行到moveToNextPhase,执行下一个阶段

循环获取每一个docIds

1.发送获取请求,也即是Transport发送,sendExecuteFetchScroll,最后归结为发送sendChildRequest

2.监听结果为innerOnResponse,fetchResults会存储从这个shard收集到的结果,每收到一个shard的数据,就执

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/神奇cpp/article/detail/961077
推荐阅读
相关标签
  

闽ICP备14008679号