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"
}

相关资料

相关推荐
longerxin20202 小时前
nano编辑器插入、编辑完整操作教程(Linux日志/配置专用)
linux·运维·编辑器
听风3475 小时前
Arch Linux 软件安装完全指南
linux·运维·archlinux·pacman
网络安全零基础教程6 小时前
网络安全春招面试避坑与复盘指南
linux·网络·安全·web安全·面试·职场和发展
扛枪的书生6 小时前
TigerVNC 安装流程
linux
Mortalbreeze6 小时前
深入 Linux Socket 编程:端口号、网络字节序与 struct sockaddr 详解
linux·服务器·网络·c++
躺柒7 小时前
读半导体简史08大型机
linux·服务器·c语言·数据库·unix·ibm
井川廊咏7 小时前
【总集篇】Linux | 如何创建一个 home 目录在 /data 磁盘的 sudo 用户(补档)
linux·运维·服务器
流量猎手7 小时前
GitHub 使用说明
大数据·elasticsearch·github
Kina_C7 小时前
LVS负载均衡的十二种核心调度算法
linux·运维·算法·负载均衡·lvs
shencz20007 小时前
用bc脚本求解大质数
linux