Elasticsearch 索引文档的过程

embedded/2024/12/22 19:00:27/

协调节点默认使用文档 ID 参与计算( 也支持通过 routing) , 以便为路由提供合适的分片。

1 shard = hash(document_id) % (num_of_primary_shards)

1、 当分片所在的节点接收到来自协调节点的请求后 ,会将请求写入到Memory Buffer ,然后定时( 默认是每隔 1 秒)写入到 Filesystem Cache ,这个从 Momery Buffer 到Filesystem Cache 的过程就叫做 refresh ;
2、当然在某些情况下 ,存在 Momery Buffer 和 Filesystem Cache 的数据可能会丢失,ES是通过 translog 的机制来保证数据的可靠性的。其实现机制是接收到请求后,同时也会写入到translog中,当 Filesystem cache 中的数据写入到磁盘中时 , 才会清除掉,这个过程叫做flush;3、在 flush 过程中 , 内存中的缓冲将被清除 , 内容被写入一个新段,段的fsync 将创建一个新的提交点 , 并将内容刷新到磁盘 ,旧的 translog 将被删除并开始一个新的translog。咕泡科技出品,严禁商用
4、 flush 触发的时机是定时触发( 默认 30 分钟) 或者 translog 变得太大(默认为512M)时;
补充 :关于 Lucene 的 Segement:
1、 Lucene 索引是由多个段组成 , 段本身是一个功能齐全的倒排索引。2、段是不可变的 , 允许 Lucene 将新的文档增量地添加到索引中 ,而不用从头重建索引。3、对于每一个搜索请求而言 ,索引中的所有段都会被搜索 , 并且每个段会消耗CPU的时钟周、文件句柄和内存。这意味着段的数量越多 ,搜索性能会越低。
4、为了解决这个问题 ,Elasticsearch 会合并小段到一个较大的段,提交新的合并段到磁盘,并删除那些旧的小段。


http://www.ppmy.cn/embedded/10866.html

相关文章

14 Php学习:表单

表单 PHP 表单是用于收集用户输入的工具,通常用于网站开发。PHP 可以与 HTML 表单一起使用,用于处理用户提交的数据。通过 PHP 表单,您可以创建各种类型的表单,包括文本输入框、复选框、下拉菜单等,以便用户可以填写和…

数据结构和算法:贪心

贪心算法 贪心算法是一种常见的解决优化问题的算法,其基本思想是在问题的每个决策阶段,都选择当前看起来最优的选择,即贪心地做出局部最优的决策,以期获得全局最优解。 贪心算法和动态规划都常用于解决优化问题。它们之间存在一…

【leetcode面试经典150题】66. 分隔链表(C++)

【leetcode面试经典150题】专栏系列将为准备暑期实习生以及秋招的同学们提高在面试时的经典面试算法题的思路和想法。本专栏将以一题多解和精简算法思路为主,题解使用C语言。(若有使用其他语言的同学也可了解题解思路,本质上语法内容一致&…

[Windows] Bypass分流抢票 v1.16.25 五一黄金周自动抢票软件(2024.02.08更新)

五一黄金周要来了,火车票难买到,即便官网候选订票也要看运气,推荐使用这个靠谱的自动抢票软件, 该工具是目前市面上最好用口碑最好的电脑抢票软件,从13年到现在,作者依旧在更新,可以自动识别123…

04-15 周一 GitHub仓库CI服务器actions-runner和workflow yaml配置文档解析

04-15 周一 GitHub仓库CI服务器配置过程文档 时间版本修改人描述2024年4月15日10:35:52V0.1宋全恒新建文档2024年4月17日10:33:20v1.0宋全恒完成github actions CI的配置和工作流配置文件解读文档的撰写 简介 一些基础概念 前提知识 仓库介绍 地址镜像介绍https://github.…

C#面:.NET默认的委托类型有哪几种?

C# .NET默认的委托类型有以下几种&#xff1a; Action&#xff1a;Action 是一个泛型委托类型&#xff0c;它可以接受0到16个参数&#xff0c;并且没有返回值。例如&#xff0c;Action<int> 表示一个接受一个int类型参数的委托。Func&#xff1a;Func 也是一个泛型委托类…

(mac)性能监控平台搭建JMeter+Grafana+Influxdb

【实现原理】 通过influxdb数据库存储jmeter的结果&#xff0c;再通过grafana采集influxdb数据库数据&#xff0c;完成监控平台展示 一、时间序列数据InfluxDB 1.InfluxDB下载安装 官网下载 https://portal.influxdata.com/downloads/ 官网最新版&#xff1a; &#xff0…

Java进阶-Stream流

概述 在Java8中&#xff0c;得益于lambda所带来的函数式编程&#xff0c;引入了一个全新的Stream流的概念目的&#xff1a;用于简化集合和数组操作的api 案例 需求&#xff1a;创建一个集合存储多个字符串元素&#xff0c;将集合中所有以“z”开头的元素存储到新的集合中&am…