ElastiSearch Merger介绍

本文涉及的产品
检索分析服务 Elasticsearch 版,2核4GB开发者规格 1个月
简介: ElastiSearch Merger介绍

根据ES的写入原理分析,默认每秒从memory buffer里面搬运数据到filesystem cache,生产一个segments段,由后台程序定期分梯队进行合并(该部分原理还没深入研究),不过从查看到的segments数量,大小来看,默认的合并效果并不好,会出现很多小segments没有合并。根据操作系统的原理,一个索引打开太多的文件,势必会影响性能,ES也开放了相应的接口给用户对这些segments经行手动合并。

下面介绍一下forcemerge相关命令

执行合并segment

计算规则(参考):按照每个segment 5GB 来评估 max_num_segments,根据实际情况,比如 index最大的分片5gb,max_num_segments就是1.

max_num_segments取值为:max_num_segments =(单个索引的大小G/分片数/5G)

建议每天业务低峰进行一次

POST indexname/_forcemerge?max_num_segments=1

参数说明:

参数 说明
max_num_segments 合并到的段数。要完全合并索引,请将其设置为1。默认值是简单地检查是否需要执行合并,如果需要,则执行合并。
only_expunge_deletes 合并过程应该只删除其中有删除的段。在Lucene中,不会从段中删除文档,而只是将其标记为已删除。在段的合并过程中,将创建一个没有这些删除的新段。此标志仅允许合并具有删除的段。默认为false。请注意,这不会超过 index.merge.policy.expunge_deletes_allowed阈值。
flush 强制合并后是否应该执行刷新。默认为 true。

查看每台机器执行merge线程数

GET _cat/thread_pool/force_merge?v&s=name

查看哪些index在merge

GET /_cat/indices/?s=segmentsCount:desc&v&h=index,segmentsCount,segmentsMemory,memoryTotal,mergesCurrent,mergesCurrentDocs,storeSize,p,r

image-20220927102918000

使用task api 查看force merge

GET _tasks?detailed=true&actions=*forcemerge

查看segment

GET _cat/segments?v&h=shard,segment,size.memory

查看索引大小

GET _cat/indices/ads_user_profile?v
相关实践学习
使用阿里云Elasticsearch体验信息检索加速
通过创建登录阿里云Elasticsearch集群,使用DataWorks将MySQL数据同步至Elasticsearch,体验多条件检索效果,简单展示数据同步和信息检索加速的过程和操作。
ElasticSearch 入门精讲
ElasticSearch是一个开源的、基于Lucene的、分布式、高扩展、高实时的搜索与数据分析引擎。根据DB-Engines的排名显示,Elasticsearch是最受欢迎的企业搜索引擎,其次是Apache Solr(也是基于Lucene)。 ElasticSearch的实现原理主要分为以下几个步骤: 用户将数据提交到Elastic Search 数据库中 通过分词控制器去将对应的语句分词,将其权重和分词结果一并存入数据 当用户搜索数据时候,再根据权重将结果排名、打分 将返回结果呈现给用户 Elasticsearch可以用于搜索各种文档。它提供可扩展的搜索,具有接近实时的搜索,并支持多租户。
目录
相关文章
|
存储 分布式数据库 Hbase
HBase scan过程简析
HBase scan过程简析。 scan过程总体上是分层处理的,与存储上的组织方式一致,脉络比较清晰; 具体来说,就是region->store→hfile/memstore,分别都有对应的scanner实现进行数据读取; scan请求本身设置的条件,以及server和table层面的一些参数限制,会根据需要分布在不同层次的scanner中进行处理; 2.
1954 0
HBase scan过程简析
|
4月前
|
对象存储
milvus的compaction分析(小文件合并大文件)
milvus的compaction分析(小文件合并大文件)
838 0
|
4月前
|
存储 分布式计算 自然语言处理
MapReduce【小文件的优化-Sequence文件】
MapReduce【小文件的优化-Sequence文件】
|
11月前
|
数据挖掘
白话Elasticsearch53-深入聚合数据分析之Collect Model_bucket优化机制:深度优先、广度优先
白话Elasticsearch53-深入聚合数据分析之Collect Model_bucket优化机制:深度优先、广度优先
49 0
|
11月前
|
自然语言处理 数据挖掘 数据库
白话Elasticsearch31-深入聚合数据分析之bucket与metric
白话Elasticsearch31-深入聚合数据分析之bucket与metric
56 0
|
NoSQL 大数据 分布式数据库
【HBase】(6)-Compact合并StoreFile流程
【HBase】(6)-Compact合并StoreFile流程
194 0
【HBase】(6)-Compact合并StoreFile流程
|
NoSQL 索引 内存技术
RocksDB 优化小解(一):Indexing SST
RocksDB 优化小解(一):Indexing SST
272 0
RocksDB 优化小解(一):Indexing SST
|
存储 缓存 NoSQL
ES通过 Enrich Processor 的 Ingest Pipeline 实现关系数据库中的表关联(join)操作
ES通过 Enrich Processor 的 Ingest Pipeline 实现关系数据库中的表关联(join)操作
ES通过 Enrich Processor 的 Ingest Pipeline 实现关系数据库中的表关联(join)操作
|
NoSQL 关系型数据库 MySQL
boltdb 源码导读(二):boltdb 索引设计(1)
boltdb 源码导读(二):boltdb 索引设计(1)
210 0
boltdb 源码导读(二):boltdb 索引设计(1)
|
缓存 API Go
boltdb 源码导读(二):boltdb 索引设计(2)
boltdb 源码导读(二):boltdb 索引设计(2)
97 0