以紧凑的表格形式返回索引的 Lucene 分段信息。
API 格式 #
GET /_cat/segments
GET /_cat/segments/{index}
API 作用 #
该 API 以表格形式返回 Lucene 分段信息:
- 显示所有索引或指定索引的分段
- 显示分段的文档数量和大小
- 显示分段的内存使用情况
- 显示分段是否可搜索和已提交
API 参数 #
路径参数 #
| 参数 | 类型 | 是否必填 | 默认值 | 描述 |
|---|---|---|---|---|
{index} | String | 否 | 所有索引 | 逗号分隔的索引名称列表,支持通配符 |
查询参数 #
| 参数 | 类型 | 是否必填 | 默认值 | 描述 |
|---|---|---|---|---|
format | String | 否 | 文本表格 | 响应格式(如 json、yaml) |
h | String | 否 | 所有列 | 逗号分隔的列名列表 |
v | Boolean | 否 | false | 是否显示列标题 |
help | Boolean | 否 | false | 是否返回帮助信息 |
local | Boolean | 否 | false | 是否仅返回本地集群状态 |
master_timeout | Time | 否 | 30s | 等待主节点的超时时间 |
响应列说明 #
| 列名 | 别名 | 描述 |
|---|---|---|
index | i, idx | 索引名称 |
shard | s, sh | 分片名称 |
prirep | p, pr, primaryOrReplica | 主分片或副本分片(p/r) |
ip | - | 分段所在节点的 IP 地址 |
id | - | 分段所在节点的唯一 ID |
segment | seg | 分段名称 |
generation | g, gen | 分段代数 |
docs.count | dc, docsCount | 分段中的文档数 |
docs.deleted | dd, docsDeleted | 分段中已删除的文档数 |
size | - | 分段大小(字节) |
size.memory | sm, sizeMemory | 分段内存使用(字节) |
committed | ic, isCommitted | 分段是否已提交 |
searchable | is, isSearchable | 分段是否可搜索 |
version | v, ver | Lucene 版本 |
compound | ico, isCompound | 分段是否为复合分段 |
请求示例 #
查询所有索引的分段 #
GET /_cat/segments?v
查询指定索引的分段 #
GET /_cat/segments/my_index?v
选择显示列 #
GET /_cat/segments?h=index,shard,segment,docs.count,size&v
JSON 格式 #
GET /_cat/segments?format=json
响应示例 #
文本表格格式(verbose 模式) #
index shard prirep ip id segment generation docs.count docs.deleted size size.memory committed searchable version compound
my_index 0 p 192.168.1.10 node-abc123 _0 5 1000 0 1mb 2mb true true 8.0.0 true
my_index 0 r 192.168.1.11 node-def456 _0 5 1000 0 1mb 2mb true true 8.0.0 true
logs 0 p 192.168.1.10 node-abc123 _0 10 50000 0 5mb 10mb true true 8.0.0 true
logs 0 r 192.168.1.11 node-def456 _0 10 50000 0 5mb 10mb true true 8.0.0 true
JSON 格式 #
[
{
"index": "my_index",
"shard": "0",
"prirep": "p",
"ip": "192.168.1.10",
"id": "node-abc123",
"segment": "_0",
"generation": "5",
"docs.count": "1000",
"docs.deleted": "0",
"size": "1048576",
"size.memory": "2097152",
"committed": "true",
"searchable": "true",
"version": "8.0.0",
"compound": "true"
}
]
分段字段说明 #
分段类型 #
- 复合分段:包含多个子分段的复合文件,通常已优化
- 单一分段:单独的分段文件
分段状态 #
- 已提交:分段已持久化到磁盘
- 可搜索:分段可被搜索查询访问
分段代数 #
- 较高的代数表示较新的分段
- 代数随合并操作增加
使用场景 #
- 性能分析:分析分段数量和大小对查询性能的影响
- 合并优化:确定哪些索引需要强制合并
- 内存分析:检查分段的内存使用情况
- 故障排查:识别包含大量已删除文档的分段
注意事项 #
- v 参数:使用
?v显示列标题 - 大型索引:拥有大量分段的索引响应会很长
- 实时数据:分段信息来自 Lucene 的实时元数据
- 节点信息:节点已离开集群时显示为
-
相关操作 #
- POST /{index}/_forcemerge:强制合并分段
- GET /_cat/indices:查看索引详细信息
- GET /{index}/_segments:获取详细的分段信息
实现文件 #
- REST 处理器:
RestSegmentsAction.java - 基础 API:
RestIndicesSegmentsAction.java - 基础类:
AbstractCatAction.java





