首页 > 解决方案 > 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,但由于这两个不受支持的设置而失败。

因为无论如何我都不需要这些设置(它们对我来说只是信息)我想从索引中删除它们。

从索引中删除静态设置需要以下步骤:

  1. 关闭索引

  2. 将设置设置为空

  3. 重新打开索引

不幸的是,这不适用于当前版本的 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 不再支持的索引设置?

标签: elasticsearch

解决方案


推荐阅读