ElasticSearch之Force merge API

使用本方法,可以触发强制合并操作。

默认情况下,ElasticSearch会在后台周期性触发合并操作,因此不需要用户刻意使用本方法。

使用强制合并的弊端:

  • 可能会产生大于5G的segment对象,而ElasticSearch后台自动触发的合并操作会跳过此类大型segment对象。
  • 假如定期执行强制合并,将导致快照的成本增高,原因是强制合并产生的segment的变动,导致无法增量创建快照。

方法参数
max_num_segments

合并操作完成后,创建的segment对象的数量。

当指定为1时,表示完全合并。

未指定本参数时,表示仅当符合条件时,才会执行合并操作。

only_expunge_deletes,默认值为false

  • true,检查全部segment对象,对于标记为删除记录的占比超出参数index.merge.policy.expunge_deletes_allowedsegment,执行合并操作。
  • false,不检查删除记录的占比。

wait_for_completion,默认值为true

  • true,表示同步调用,需要等待本次强制合并任务结束,调用才会返回。
  • false,表示异步调用,可以使用返回的任务标识来查询进度,但注意触发的任务不会被取消。假如有多个任务被触发,则会被调度器放在队列中,逐个执行。

注意only_expunge_deletesmax_num_segments不能同时使用。

相关参数
index.merge.policy.expunge_deletes_allowed
index中已被标记为删除状态的记录的比例,百分数,默认值为10

当前only_expunge_deletes取值为true时使用。

使用样例

创建测试用的index,命名为testindex_001,命令样例,如下:

shell 复制代码
curl -X PUT "https://localhost:9200/testindex_001?pretty" --cacert $ES_HOME/config/certs/http_ca.crt -u "elastic:ohCxPH=QBE+s5=*lo7F9"

执行结果的样例,如下:

shell 复制代码
{
    "acknowledged": true,
    "shards_acknowledged": true,
    "index": "testindex_001"
}

执行时指定index的名称testindex_001,命令样例,如下:

shell 复制代码
curl -X POST "https://localhost:9200/testindex_001/_forcemerge?pretty" --cacert $ES_HOME/config/certs/http_ca.crt -u "elastic:ohCxPH=QBE+s5=*lo7F9"

执行结果的样例,如下:

shell 复制代码
{
  "_shards" : {
    "total" : 2,
    "successful" : 1,
    "failed" : 0
  }
}

执行时不指定index的名称,命令样例,如下:

shell 复制代码
curl -X POST "https://localhost:9200/_forcemerge?pretty" --cacert $ES_HOME/config/certs/http_ca.crt -u "elastic:ohCxPH=QBE+s5=*lo7F9"

执行结果的样例,如下:

shell 复制代码
{
  "_shards" : {
    "total" : 2,
    "successful" : 1,
    "failed" : 0
  }
}

执行时不指定index的名称,异步调用,命令样例,如下:

shell 复制代码
curl -X POST "https://localhost:9200/_forcemerge?wait_for_completion=false&pretty" --cacert $ES_HOME/config/certs/http_ca.crt -u "elastic:ohCxPH=QBE+s5=*lo7F9"

执行结果的样例,如下:

shell 复制代码
{
  "task" : "aKgBu7LgS9a6iPYH8n2JPw:103209"
}

相关资料

相关推荐
Vect__2 小时前
深刻理解进程、线程、程序
linux
末日汐3 小时前
传输层协议UDP
linux·网络·udp
zzzsde5 小时前
【Linux】库的制作和使用(3)ELF&&动态链接
linux·运维·服务器
CQU_JIAKE5 小时前
4.3【A]
linux·运维·服务器
Elastic 中国社区官方博客6 小时前
当 TSDS 遇到 ILM:设计不会拒绝延迟数据的时间序列数据流
大数据·运维·数据库·elasticsearch·搜索引擎·logstash
qing222222226 小时前
Linux中修改mysql数据表
linux·运维·mysql
Alvin千里无风6 小时前
在 Ubuntu 上从源码安装 Nanobot:轻量级 AI 助手完整指南
linux·人工智能·ubuntu
沐风___6 小时前
Claude Code 权限模式完全指南:Auto、Bypass、Ask 三模式深度解析
大数据·elasticsearch·搜索引擎
杨云龙UP6 小时前
Oracle 中 NOMOUNT、MOUNT、OPEN 怎么理解? 在不同场景下如何操作?_20260402
linux·运维·数据库·oracle
Amctwd6 小时前
【Linux】OpenCode 安装教程
linux·运维·服务器