elasticsearch 查询过程

这篇博客深入剖析Elasticsearch的查询流程,从客户端发送请求到数据节点处理fetch请求的全过程。通过源码分析,解释了query then fetch机制,涉及客户端请求发送、节点接收处理、协调节点的角色以及数据节点的查询和fetch操作。
摘要由CSDN通过智能技术生成

背景

学习elasticsearch查询流程,了解es源码。在网络上看了很多elasticsearch的教程。对es的流程介绍都是停留在query then fetch层面。没有一篇真正细致的深入到流程的每一步。本篇博客旨在细致的介绍es search过程的整个调试流程,介绍的是query then fetch的流程。所以,默认对es有一定理解,且能搭建一个本地的调试环境。
请带着以下问题去读本篇文章。

  1. elasticsearch client是如果发送请求的,又是如何接受和处理返回的结果?
  2. 协调节点的接收到client请求后的处理流程是怎样的?
  3. 协调节点怎么收集合并数据,分数处理?
  4. 数据节点接收到查询请求的处理过程?
  5. 数据节点接受到fetch请求的处理过程?
  6. search过程中涉及到的请求有哪些?
    这些问题会在文章最后解答。

查询过程

首先从整体架构上介绍整个查询流程。
我们知道,es的查询分为query then fetch和dfs query then fetch两种,而本文介绍的是前者。es的底层结构是倒排索引,这个查询的过程,query就是先根据查询获取具体的数据的id。fetch就是根据query过程的获取的id拿出具体的数据。整个流程涉及到了三个实体,客户端(client),协调节点(Coordinator),数据节点(DataNode)。三者的具体关系看下图,这个流程在网上也有很多的文章介绍。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值