强制合并

编辑

允许的阶段:热,温。

强制合并索引到指定的最大数量。

forcemerge 期间正在重新定位的分片将不会被合并。

要在 hot 阶段使用 forcemerge 操作,rollover 操作必须存在。如果未配置 rollover 操作,ILM 将拒绝该策略。

选项

编辑
max_num_segments
(必需,整数)要合并到的段数。要完全合并索引,请设置为 1
index_codec

(可选,字符串)用于压缩文档存储的编解码器。唯一接受的值是 best_compression,它使用 ZSTD 以获得更高的压缩比,但存储字段性能较慢。要使用默认的 LZ4 编解码器,请省略此参数。

如果使用 best_compression,ILM 将在强制合并之前关闭,然后重新打开索引。在关闭期间,索引将不可用于读取或写入操作。

示例

编辑
resp = client.ilm.put_lifecycle(
    name="my_policy",
    policy={
        "phases": {
            "warm": {
                "actions": {
                    "forcemerge": {
                        "max_num_segments": 1
                    }
                }
            }
        }
    },
)
print(resp)
response = client.ilm.put_lifecycle(
  policy: 'my_policy',
  body: {
    policy: {
      phases: {
        warm: {
          actions: {
            forcemerge: {
              max_num_segments: 1
            }
          }
        }
      }
    }
  }
)
puts response
const response = await client.ilm.putLifecycle({
  name: "my_policy",
  policy: {
    phases: {
      warm: {
        actions: {
          forcemerge: {
            max_num_segments: 1,
          },
        },
      },
    },
  },
});
console.log(response);
PUT _ilm/policy/my_policy
{
  "policy": {
    "phases": {
      "warm": {
        "actions": {
          "forcemerge" : {
            "max_num_segments": 1
          }
        }
      }
    }
  }
}