当前位置: 首页 > news >正文

Elasticsearch的读写搜索过程

问题

Elasticsearch在读写数据的过程是什么样的?你该如何理解这个问题!

Elasticsearch的写数据过程

  1. 客户端选择一个节点发送请求,这个时候我们所说的这个节点就是协调节点(coordinating node)
  2. 协调节点对document进行了路由,然后将请求再转发给对应的节点(primary shard)
  3. 实际上操作的节点的primary shard请求处理,之后再将数据进行同步,同步到replica node
  4. 协调节点发现primary node及所有的replica node都搞定了之后,就将相应结果返回给我们的客户端

Elasticsearch的读数据过程

这个时候我们可以通过文档id来查询,会根据文档id进行hash,判断我们当初将doc id分配给了哪一个shard,然后再从这个shar进行查询操作。

  1. 客户端发送一个请求到任意的一个节点,成为了协调节点(coordinate node)
  2. 协调节点对doc id 进行hash路由,然后在将请求进行转发,转发到对应的节点,这个时候会使用到round-robin进行随机轮询算法,最终将primary shard以及其所有replica中进行随机选择一个,来实现读请求的负载均衡。
  3. 接收到请求的节点返回document给协调节点。
  4. 协调节点返回document再给到客户端。

Elasticsearch的搜索数据过程

其实elasticsearch最强大的是他的全文检索功能。

  1. 客户端发送一个请求到协调节点
  2. 协调节点会将搜索请求转发到所有的shard中对应的replica shard或者primary shard
  3. 每个shard都会将自己的搜索结果返回给协调节点,然后再由协调节点对数据进行合并、排序、分页等操作,最终会输出结果
  4. 接下来协调节点会根据doc id 去各个节点上面拉取实际的文档数据,完成之后会最终将数据返回给客户端。

好了,今天关于Elasticsearch的读、写、搜索过程就讲解到这里,欢迎大家留言交流

也欢迎大家关注我的公众号《coder练习生》

http://www.lryc.cn/news/3891.html

相关文章:

  • 线上服务质量的问题该如何去处理?你有什么思路?
  • IOC 配置,依赖注入的三种方式
  • 自动机,即有限状态机
  • 第一部分:简单句——第一章:简单句的核心——二、简单句的核心变化(主语/宾语/表语的变化)
  • VSCode Markdown写作引入符合规范的参考文献
  • 电子学会2022年12月青少年软件编程(图形化)等级考试试卷(四级)答案解析
  • JUC并发编程学习笔记(一)——知识补充(Threadlocal和引用类型)
  • 2022级上岸浙理工MBA的复试经验提炼和备考建议
  • 人大金仓数据库索引的应用与日常运维
  • 20230211英语学习
  • 5G图书推荐
  • 【Linux下代码调试工具】gdb 的基本使用
  • UART和RS232、RS485的联系和区别、以及对软件编程的影响
  • ajax是什么?咋实现的
  • AI推理计算框架中的内存优化
  • C语言学习小结(1)——初认识C语言
  • 30分钟吃掉wandb可视化自动调参
  • 【8】AMBA_SOC项目自学IC验证项目-仿真平台脚本使用讲解
  • 智慧水务未来技术发展方向预测探讨
  • 数据结构 | 栈与队列
  • Redux 源码分析
  • 第五十二章 BFS进阶(二)——双向广搜
  • 业务建模题
  • 电子秤专用模拟数字(AD)转换器芯片HX711介绍
  • 微服务 RocketMQ-延时消息 消息过滤 管控台搜索问题
  • js发送邮件(node.js)
  • English Learning - Day58 一周高频问题汇总 2023.2.12 周日
  • 【微电网】基于风光储能和需求响应的微电网日前经济调度(Python代码实现)
  • 四种方式的MySQL安装
  • 软考高级信息系统项目管理师系列之九:项目范围管理