当前位置: 首页 > article >正文

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,命令样例,如下:

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

执行结果的样例,如下:

{
    "acknowledged": true,
    "shards_acknowledged": true,
    "index": "testindex_001"
}

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

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

执行结果的样例,如下:

{
  "_shards" : {
    "total" : 2,
    "successful" : 1,
    "failed" : 0
  }
}

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

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

执行结果的样例,如下:

{
  "_shards" : {
    "total" : 2,
    "successful" : 1,
    "failed" : 0
  }
}

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

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"

执行结果的样例,如下:

{
  "task" : "aKgBu7LgS9a6iPYH8n2JPw:103209"
}

相关资料

  • Force merge API
  • Merge
  • Task management API
  • Flush API

http://www.kler.cn/a/153484.html

相关文章:

  • Vue 3.0 响应式 计算和侦听
  • Elasticsearch 优化查询中获取字段内容的方式,性能提升5倍!
  • 全志XR806基于FreeRTOS下部署竞技机器人先进模糊控制器
  • 将本地项目推送到github
  • mysql主从复制-redis集群扩容缩容、缓存优化(缓存更新策略、穿透,击穿,雪崩)、mysql主从搭建、django实现读写分离
  • Mybatis核心配置文件概述
  • Centos7安装
  • 深度学习早停机制(Early Stopping)与早退机制(Early exiting)
  • Rust语言项目实战(二) - 准备键盘和终端屏幕
  • uni-app 微信小程序之自定义中间圆形tabbar
  • 电梯导航的小练习
  • 【漏洞复现】大华智慧园区综合管理平台deleteFtp接口远程命令执行
  • 解决git action发布报错:Input required and not supplied: upload_url
  • 手机上的记事本怎么打开?安卓手机通用的记事本APP
  • SVG图片选择库组件封装及使用
  • 企业真题(数组\面向对象-基础)
  • 智慧安防三大信息技术:云计算、大数据及人工智能在视频监控EasyCVR中的应用
  • 华为OD机试真题-最大坐标值-2023年OD统一考试(C卷)
  • 一起学docker系列之十五深入了解 Docker Network:构建容器间通信的桥梁
  • Servlet概念视频笔记