ElasticSearch查询流程

本文介绍了ElasticSearch查询的两个阶段:分散阶段和合并阶段。分散阶段中,协调节点广播查询请求到所有相关分片,每个分片执行查询并返回结果。合并阶段中,协调节点整合结果并按排序返回给客户端。查询示例展示了如何指定from和size参数。合理使用路由能有效减少请求时间。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值