获取一个或多个索引的 Lucene 段升级状态,用于监控由 POST /_upgrade API 发起的索引升级进度。
API 格式 #
GET /_upgrade
GET /{index}/_upgrade
API 作用 #
该 API 用于检查索引中需要升级的 Lucene 段的大小和状态。升级过程会将旧版本的 Lucene 段格式转换为当前版本,以确保兼容性和性能。
API 参数 #
路径参数 #
| 参数 | 类型 | 是否必填 | 默认值 | 描述 |
|---|---|---|---|---|
{index} | String | 否 | - | 逗号分隔的索引名称列表。如未指定,则检查所有索引的升级状态 |
查询参数 #
| 参数 | 类型 | 是否必填 | 默认值 | 描述 |
|---|---|---|---|---|
index | String | 否 | - | 逗号分隔的索引名称列表(与路径参数作用相同) |
level | String | 否 | indices | 响应的详细级别。可选值: - indices(默认):仅返回索引级别信息- shards:包含分片级别的详细信息 |
响应示例 #
{
"size_in_bytes": "10b",
"size_to_upgrade": "10b",
"size_to_upgrade_ancient": "0b",
"indices": {
"my_index": {
"size_in_bytes": "10b",
"size_to_upgrade": "10b",
"size_to_upgrade_ancient": "0b",
"shards": {
"0": [
{
"size_in_bytes": "10b",
"size_to_upgrade": "10b",
"size_to_upgrade_ancient": "0b",
"routing": {
"state": "STARTED",
"primary": true,
"node": "node_id",
"relocating_node": null
}
}
]
}
}
}
}
响应字段说明 #
顶层字段 #
| 字段 | 类型 | 描述 |
|---|---|---|
size_in_bytes | String | 所有索引的总字节大小 |
size_to_upgrade | String | 需要升级的总字节数 |
size_to_upgrade_ancient | String | 来自旧版本(ancient)段的需要升级的总字节数 |
indices 对象 #
包含每个索引的信息,键为索引名称:
| 字段 | 类型 | 描述 |
|---|---|---|
size_in_bytes | String | 该索引的字节大小 |
size_to_upgrade | String | 该索引需要升级的字节数 |
size_to_upgrade_ancient | String | 该索引来自旧版本段的需要升级的字节数 |
shards 对象(当 level=shards 时)
#
包含每个分片的信息:
| 字段 | 类型 | 描述 |
|---|---|---|
size_in_bytes | String | 该分片的字节大小 |
size_to_upgrade | String | 该分片需要升级的字节数 |
size_to_upgrade_ancient | String | 该分片来自旧版本段的需要升级的字节数 |
routing.state | String | 分片当前状态(如 STARTED) |
routing.primary | Boolean | 是否为主分片 |
routing.node | String | 托管该分片的节点 ID |
routing.relocating_node | String/null | 如果分片正在迁移,则为目标节点 ID,否则为 null |
注意事项 #
- 该 API 为只读监控 API,不会修改任何数据
- 升级操作由 POST /_upgrade API 发起
- 响应会同时显示总升级需求和旧版本段的升级需求
- 旧版本(ancient)段通常指来自主要版本差异较大的 Lucene 版本的段





