赞
踩
ElasticSearch 查询分为两个阶段:
第一个阶段:分散阶段
第二个阶段:合并阶段
客户端可以向任何一个节点发送请求,当一个节点接收到请求时,这个节点就变成了协调节点,这个节点的任务是广播查询请求到所有相关分片并将它们的响应整合成全局排序后的结果集合,这个结果集合会返回给客户端。
查询示例:
GET index_test_tp_01/_search
{
"query": {
"term": {
"id": {
"value": 1
}
}
},
"from": 10,
"size": 10
}
本例查询过程:
分散阶段:在请求到达到节点后,该节点会向相关的分片发送相同的请求(注:因为没有带路由所以会向所有分片发送相同的请求),每个分片在本地执行查询并添加结果到大小为 from + size
的本地有序优先队列中。每个分片处理请求后返回各自优先队列中所有文档的 ID 和排序值给协调节点(客户端发送请求的节点),它合并这些值到自己的优先队列中来产生一个全局排序后的结果列表。(协调节点需要根据 number_of_shards * (from + size)
排序文档&#x
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。