ES数据搜索分为两个阶段进行:query phase和fetch phase
1、客户端构建搜索请求发送到协调节点coordinate node。
2、协调节点coordinate node将搜索请求转发到所有的 shard 对应的 primary shard 或 replica shard。
3、query phase:每个 shard 将自己的搜索结果(其实就是一些文档 _id )返回给协调节点,由协调节点进行数据的合并、排序、分页等操作,产出最终结果。
4、fetch phase:接着由协调节点根据 文档 _id 去各个节点上拉取实际的 document 数据,最终返回给客户端。