配置项作用 #
rollup.max_docs 配置项用于控制Rollup 索引自动滚动前的最大文档数。
当 Rollup 索引达到此文档数时,系统会自动创建新索引,后续的 Rollup 数据将写入新索引。
配置项属性 #
- 配置路径:
rollup.max_docs - 数据类型:
Long(64位整数) - 默认值:
20000000(2000万) - 是否可选: 是
- 作用域: NodeScope(节点级别)
- 动态更新: 是(可以动态更新)
- 废弃状态: 已废弃
配置项详解 #
工作机制 #
自动滚动机制
Rollup 索引增长:
├── 文档数: 10,000,000
├── 文档数: 15,000,000
├── 文档数: 20,000,000 ← 达到 max_docs
├── 触发滚动 ✅
└── 创建新索引
新索引:
rollup-index-000001 (旧)
│
├── 20,000,000 文档
└── 满足条件
rollup-index-000002 (新)
│
├── 0 文档
└── 接收新数据 ✅
滚动条件 #
滚动条件判断
max_docs = 20,000,000:
文档数 < max_docs:
├── 继续写入当前索引
└── 不触发滚动
文档数 >= max_docs:
├── 触发滚动条件
├── 创建新索引
├── 后续数据写入新索引
└── 旧索引变为只读
配合其他条件:
├── max_docs: 文档数限制
├── hours_before: 时间限制
└── 综合判断
配置建议 #
生产环境(默认) #
rollup:
max_docs: 20000000 # 默认值
建议: 大多数场景使用默认值。
大文档量 #
rollup:
max_docs: 50000000 # 增加限制
建议: 文档量特别大时使用。
小文档量 #
rollup:
max_docs: 5000000 # 减少限制
建议: 需要更频繁滚动时使用。
按任务覆盖 #
// 覆盖特定任务
PUT /_cluster/settings
{
"transient": {
"rollup.index_max_docs.job_hourly": 1000000
}
}
建议: 为特定任务设置不同值。
代码示例 #
基础配置 #
rollup:
max_docs: 20000000
完整 Rollup 配置 #
rollup:
max_docs: 20000000
hours_before: 48
动态更新 #
PUT /_cluster/settings
{
"transient": {
"rollup.max_docs": 50000000
}
}
任务级别配置 #
PUT /_cluster/settings
{
"transient": {
"rollup.index_max_docs.job_daily": 10000000,
"rollup.index_max_docs.job_weekly": 50000000
}
}
相关配置 #
| 配置项 | 作用 | 默认值 |
|---|---|---|
max_docs | 最大文档数 | 20000000 |
hours_before | 时间边界 | - |
注意事项 #
默认值: 默认值为 2000 万文档。
动态更新: 可以动态更新。
按任务覆盖: 可以为特定任务设置不同值。
索引滚动: 达到限制时自动创建新索引。
查询影响: 新增文档会写入新索引。
存储管理: 有助于管理索引大小。
已废弃: 配置项已废弃。
监控建议: 监控索引文档数。
性能考虑: 文档数过多可能影响查询性能。
合理设置: 根据数据量和查询需求调整。





