首页/数据/NoSQL 速查/ILM 索引生命周期策略
本包目录(322 条)
MongoDB99 条
Elasticsearch89 条
ClickHouse56 条时序与列式28 条选型与架构50 条

ILM 索引生命周期策略

ILM 把索引按年龄或体积分到 hot/warm/cold/delete 阶段并自动执行 rollover、shrink、force merge、删除等动作;策略通过模板绑定到索引,需搭配写别名使用。

NoSQL 速查数据更新于 2026-10-12
接口PUT /_ilm/policy/<name> 定义策略;模板里 settings.index.lifecycle.name 绑定
阶段动作rollover、shrink、forcemerge、set_priority、allocate、delete、wait_for_snapshot
前提rollover 需要写别名,模板里设置 index.lifecycle.rollover_alias

示例

示例
PUT /_ilm/policy/logs_policy
{
  "policy": {
    "phases": {
      "hot": {
        "actions": {
          "rollover": { "max_primary_shard_size": "50gb", "max_age": "7d" },
          "set_priority": { "priority": 100 }
        }
      },
      "warm": {
        "min_age": "7d",
        "actions": {
          "forcemerge": { "max_num_segments": 1 },
          "set_priority": { "priority": 50 }
        }
      },
      "delete": { "min_age": "90d", "actions": { "delete": {} } }
    }
  }
}
策略定义后要绑定到新索引才生效:在索引模板的 settings 里写 index.lifecycle.name,已有索引可用 PUT _settings 单独挂。

易错点

  • min_age 从滚动产生新索引的时刻才开始计时,字段含义容易与数据写入时间混淆
  • delete 阶段动作不可逆,策略上线前用 ILM explain 核对每个索引的阶段与年龄

数据来源与参考

  • Elasticsearch Guide: Index lifecycle management
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌