elasticsearch之分布式搜索过程

本文介绍了Elasticsearch的分布式搜索过程,分为查询阶段和取回阶段。在查询阶段,请求广播到所有分片,每个分片构建优先队列并返回排序后的文档ID。协调节点整合结果产生全局排序。在取回阶段,协调节点确定需要取回的文档并发送请求,分片返回文档内容,最后由协调节点组装结果返回给客户端。
摘要由CSDN通过智能技术生成

                       elasticsearch之分布式搜索过程

elasticsearch搜索被执行成一个两阶段过程,我们称之为query then fetch

查询阶段:

在初始 查询阶段 时, 查询会广播到索引中每一个分片拷贝(主分片或者副本分片)。 每个分片在本地执行搜索并构建一个匹配文档的 _优先队列_。一个 优先队列 仅仅是一个存有 top-n 匹配文档的有序列表。

查询阶段的过程如图所示

查询阶段包含以下三个步骤:

  1. 客户端发送一个 search 请求到 Node 3 , Node 3 会创建一个大小为 from + size 的空优先队列。
  2. Node 3 将查询请求转发到索引的每个主分片或副本分片中。每个分片在本地执行查询并添加结果到大小为 from + size 的本地有序优先队列中。
  3. 每个分片返回各自优先队列中所有文档的 ID 和排序值给协调节点,也就是 Node 3 ,它
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值