配置项作用 #
indices.mapping.dynamic_timeout 配置项控制动态映射更新操作的超时时间。当文档包含新字段且启用了动态映射时,系统会自动更新索引映射。此配置控制该操作的最大等待时间。
配置项类型 #
该配置项为动态配置,可以在运行时通过索引设置 API 进行修改。
默认值 #
30s
是否必需 #
可选配置项(有默认值)
取值范围 #
0 ~ 正无穷
配置格式 #
# 默认配置
indices.mapping.dynamic_timeout: 30s
# 增加超时时间
indices.mapping.dynamic_timeout: 60s
# 减少超时时间
indices.mapping.dynamic_timeout: 10s
# 快速失败
indices.mapping.dynamic_timeout: 5s
相关配置项 #
| 配置项 | 默认值 | 说明 |
|---|---|---|
indices.mapping.dynamic_timeout | 30s | 动态映射更新超时 |
indices.mapping.max_in_flight_updates | 10 | 最大并发映射更新数 |
index.mapper.dynamic | true | 是否启用动态映射 |
工作原理 #
动态映射更新流程:
┌─────────────────────────────────────────────────────────────────┐
│ 动态映射更新 │
└─────────────────────────────────────────────────────────────────┘
文档包含新字段
│
▼
检查动态映射设置
│
├── dynamic: false
│ │
│ └── 拒绝文档
│
└── dynamic: true
│
▼
发起映射更新请求
│
├── 等待主节点响应
│ │
│ ├── 响应时间 < dynamic_timeout
│ │ │
│ │ └── 更新成功
│ │
│ └── 响应时间 >= dynamic_timeout
│ │
│ └── 超时,失败
│
└── 最多 max_in_flight_updates 个并发更新
使用场景 #
1. 默认配置(推荐) #
indices.mapping.dynamic_timeout: 30s
适用于大多数集群配置。
2. 大规模集群 #
indices.mapping.dynamic_timeout: 60s
适用场景:
- 大量节点
- 频繁动态映射更新
- 集群状态更新慢
3. 快速失败 #
indices.mapping.dynamic_timeout: 10s
适用场景:
- 需要快速反馈
- 不希望长时间等待
- 有重试机制
4. 复杂映射环境 #
indices.mapping.dynamic_timeout: 120s
indices.mapping.max_in_flight_updates: 20
适用场景:
- 复杂映射模板
- 大量字段类型推断
- 高负载集群
推荐设置建议 #
| 集群规模 | 推荐超时 | max_in_flight_updates | 说明 |
|---|---|---|---|
| 小型 | 30s | 10 | 默认配置 |
| 中型 | 30-60s | 10-20 | 稍微宽容 |
| 大型 | 60s | 20 | 考虑延迟 |
| 跨地域 | 60-120s | 20 | 高延迟环境 |
动态配置示例 #
# 更新集群默认
PUT /_cluster/settings
{
"persistent": {
"indices.mapping.dynamic_timeout": "45s"
}
}
# 更新特定索引
PUT /my_index/_settings
{
"index.mapping.dynamic_timeout": "30s"
}
监控建议 #
# 查看当前配置
GET /_cluster/settings?filter_path=*.indices.mapping.dynamic_timeout
# 查看映射更新状态
GET /_cluster/pending_tasks
# 查看索引映射
GET /my_index/_mapping
故障排查 #
映射更新超时 #
- 检查集群健康状态
- 检查主节点负载
- 增加超时时间
- 限制并发更新数
动态映射失败 #
# 检查动态映射设置
GET /my_index/_settings?filter_path=*.mapper.dynamic
# 查看具体错误信息
# 检查是否启用了动态映射
注意事项 #
- 动态更新:此配置为动态配置,可在线修改
- 与集群状态相关:映射更新需要更新集群状态
- 主节点负载:频繁映射更新会增加主节点负载
- 并发限制:受 max_in_flight_updates 限制
- 合理设置:根据集群规模和网络延迟调整





