elasticsearch - Elasticsearch:如何删除以前版本创建的不受支持的静态索引设置?
问题描述
如果正在运行的 ES 版本不再支持/知道此设置,如何从索引中删除静态设置。
使用 ES 5.2.2 或 5.3.0 创建的索引已通过热温策略进行收缩,以减少分片数量。这种收缩在新创建的索引中shrink.source.name
创建了两个静态索引设置。shrink.source.uuid
新指数按预期工作。
与此同时,我升级到 ES 6.8.1 并且我正在为 ES 7.0 准备 Elasticsearch 集群,因为 ES 7.0 不再支持使用旧版本创建的索引。
Kibana 为所需的重新索引提供了一个不错的 UI,但由于这两个不受支持的设置而失败。
因为无论如何我都不需要这些设置(它们对我来说只是信息)我想从索引中删除它们。
从索引中删除静态设置需要以下步骤:
关闭索引
将设置设置为空
重新打开索引
不幸的是,这不适用于当前版本的 ES不再支持的设置。
curl -X PUT "elk29:9200/logstash-20160915/_settings?pretty" -H 'Content-Type: application/json' -d' { "index" : { "shrink.source.uuid" : null }}'
{
"error" : {
"root_cause" : [
{
"type" : "remote_transport_exception",
"reason" : "[elk24][10.21.15.24:9300][indices:admin/settings/update]"
}
],
"type" : "illegal_argument_exception",
"reason" : "unknown setting [index.shrink.source.uuid] please check that any required plugins are installed, or check the breaking changes documentation for removed settings"
},
"status" : 400
}
我希望该设置被简单地删除。
Oviously ES 通过将设置的值设置为 来模拟设置的删除null
。不幸的是,这只适用于明确支持的设置,但不适用于过时的不受支持的设置。
问题仍然是如何删除当前版本的 ES 不再支持的索引设置?
解决方案
推荐阅读
- r - 使用 R 中的采样权重进行纵向分析
- hazelcast - dotnet 客户端的流量在使用 hazelcast 时不相似
- flutter - 仅在颤动中完成路由转换后如何开始构建/加载 ListView?
- typescript - 如何以角度获取枚举的键和值?
- swift - 如何将文本文件导出为 PDF 文件(macOS Swift)?
- python - 在 discord.py 的命令中为一个参数使用多个值
- vue.js - 如何将点击的卡片按钮 id 传递给 vue.js 中的后端 URL 路径?
- android - 使用共享首选项以编程方式使 LinearLayout 在 android studio 中消失
- python - 当我只分配原子类型时,为什么 CPython 的 GC 会运行?
- linked-list - 哈希表如何用于动态长度数组?