在ES执行分布式搜索时,分布式搜索操作需要分散到所有相关分片,若一个索引有3个主分片,每个主分片有一个副本分片,那么搜索请求会在这6个分片中随机选择3个分片,这3个分片有可能是主分片也可能是副本分片,然后收集所有分片的查询结果.所以ES的搜索过程分为两个阶段,Query阶段和Fetch阶段:ES有两种搜索类型:query_then_fetch,dfs_query_then_fetch. 1.Query阶段 1)转发请求.在Query阶段客户端向ES节点发送,搜索请求,Coordinate节点接受…