当前位置:   article > 正文

ElasticSearch查询流程_elasticsearch如果查询中不包含分片键,这时候的查询过程是什么样的

elasticsearch如果查询中不包含分片键,这时候的查询过程是什么样的

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

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

闽ICP备14008679号