如果正在运行的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
}
我希望只是删除设置。
以前,ES通过将设置的值设置为null
来模拟删除设置。不幸的是,这仅适用于明确支持的设置,而不适用于过时的不受支持的设置。
问题仍然是如何删除当前版本的ES不再支持的索引设置?