根据上图,当客户端发起一个请求后,接受请求的节点变为协调节点,会先创建优先队列存储要查询的结果集
将请求发送给所有主节点(请求中默认会有一个routing values (通常默认是该文档的 _id )参数,
然后ES对该参数进行shard = hash(routing) % number_of_primary_shards
,找到对应的节点),
主节点在本地查询对应的top条数,将结果发送给协调节点
协调节点整合各主节点的结果数据,最终取前top条.
根据上图,当客户端发起一个请求后,接受请求的节点变为协调节点,会先创建优先队列存储要查询的结果集
将请求发送给所有主节点(请求中默认会有一个routing values (通常默认是该文档的 _id )参数,
然后ES对该参数进行shard = hash(routing) % number_of_primary_shards
,找到对应的节点),
主节点在本地查询对应的top条数,将结果发送给协调节点
协调节点整合各主节点的结果数据,最终取前top条.
相关文章: