Elasticsearch 的 Rollover 操作是索引生命周期管理(ILM)中的一个重要功能,用于在索引达到预设条件时自动将写入操作切换到一个新的索引,从而避免单个索引变得过大或过旧,影响性能和管理效率。
Rollover 操作的核心概念
1. 滚动条件(Rollover Conditions)
Rollover 操作基于预设的条件触发,这些条件可以包括:
• `max_age`:索引的年龄达到指定时间(如 30 天)。
• `max_size`:索引的大小达到指定值(如 50GB)。
• `max_docs`:索引中的文档数量达到指定值(如 1 亿个文档)。
• `max_primary_shard_size`和`max_primary_shard_docs`:主分片的大小或文档数量达到指定值。
2. 滚动目标(Rollover Target)
Rollover 的目标可以是一个数据流(Data Stream)或索引别名(Index Alias)。当目标是别名时,需要满足特定的命名规则(如`my-index-000001`),并且必须配置`index.lifecycle.rollover_alias`。
3. 滚动行为(Rollover Behavior)
满足条件时,Elasticsearch 会自动创建一个新索引(如`my-index-000002`),并将别名指向新索