ElasticSearch 段合并
Posted @SmartSi
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ElasticSearch 段合并相关的知识,希望对你有一定的参考价值。
Elasticsearch版本:2.x
由于自动刷新过程每秒会创建一个新的段,这样会导致短时间内段数量暴增。段数目太多会带来比较大的麻烦。每一个段都会消耗文件句柄、内存和 CPU 运行周期。更重要的是,每个搜索请求都必须按顺序检查每个段。所以段越多,搜索也就越慢。
Elasticsearch 通过在后台进行 段合并
来解决这个问题。小的段被合并成大的段,然后这些大的段会被合并成更大的段。段合并的时候将那些被标记为删除的旧文档从文件系统中删除。被标记删除的文档或者更新文档的旧版本文档不会被拷贝到新的更大的段中。
段合并不需要你做什么,在索引和搜索时会自动发生。该过程的工作原理如下图所示,两个提交过的段和一个未提交的段被合并到更大的段中:
- 在索引时,刷新
refresh
进程会创建新的段并开放供搜索。 - 合并进程选择几个相似大小的段,在后台将它们合并到一个新的更大的段中。这不会中断索引和搜索。
下图阐述了合并的完成过程:
- 新的片段被刷新
flush
到磁盘。
以上是关于ElasticSearch 段合并的主要内容,如果未能解决你的问题,请参考以下文章
Elasticsearch7.8.0版本进阶——动态更新索引
Elasticsearch搜索引擎:ES的segment段合并原理