--- title: "查询文档数量(Cat格式)" date: 2026-01-20 lastmod: 2026-01-20 description: "以表格形式查询文档数量" tags: ["文档", "查询", "Cat API"] summary: "以紧凑的表格形式返回索引的文档数量。 API 格式 # GET /_cat/count GET /_cat/count/{index} API 作用 # 该 API 以表格形式返回索引的文档数量: 显示所有索引或指定索引的文档总数 支持查询过滤 快速查看文档统计 API 参数 # 路径参数 # 参数 类型 是否必填 默认值 描述 {index} String 否 所有索引 逗号分隔的索引名称列表 查询参数 # 参数 类型 是否必填 默认值 描述 format String 否 文本表格 响应格式(如 json、yaml) h String 否 所有列 逗号分隔的列名列表 v Boolean 否 false 是否显示列标题 q String 否 - 查询字符串(Lucene 查询语法) 响应列说明 # 列名 别名 描述 count dc, docs." --- 以紧凑的表格形式返回索引的文档数量。 ## API 格式 ``` GET /_cat/count GET /_cat/count/{index} ``` ## API 作用 该 API 以表格形式返回索引的文档数量: - 显示所有索引或指定索引的文档总数 - 支持查询过滤 - 快速查看文档统计 ## API 参数 ### 路径参数 | 参数 | 类型 | 是否必填 | 默认值 | 描述 | |------|------|----------|--------|------| | `{index}` | String | 否 | 所有索引 | 逗号分隔的索引名称列表 | ### 查询参数 | 参数 | 类型 | 是否必填 | 默认值 | 描述 | |------|------|----------|--------|------| | `format` | String | 否 | 文本表格 | 响应格式(如 `json`、`yaml`) | | `h` | String | 否 | 所有列 | 逗号分隔的列名列表 | | `v` | Boolean | 否 | `false` | 是否显示列标题 | | `q` | String | 否 | - | 查询字符串(Lucene 查询语法) | ## 响应列说明 | 列名 | 别名 | 描述 | |------|------|------| | `count` | `dc`, `docs.count`, `docsCount` | 文档数量 | ## 请求示例 ### 查询所有索引的文档数 ``` GET /_cat/count?v ``` ### 查询指定索引的文档数 ``` GET /_cat/count/index1,index2?v ``` ### 使用查询过滤 ``` GET /_cat/count/logs-*?q=status:active&v ``` ### JSON 格式 ``` GET /_cat/count?format=json ``` ## 响应示例 ### 文本表格格式(verbose 模式) ``` count ----- 123456 ``` ### JSON 格式 ```json { "count": "123456" } ``` ### 多索引响应(指定索引时) ``` count ----- 10000 25000 ``` ## 使用场景 1. **快速统计**:快速查看文档总数 2. **索引对比**:比较不同索引的文档数量 3. **过滤统计**:统计满足条件的文档数 4. **容量估算**:评估索引大小 ## 注意事项 1. **v 参数**:使用 `?v` 显示列标题 2. **查询性能**:大型索引的计数可能需要较长时间 3. **近似值**:返回的是近似值,精确度取决于 `track_total_hits` 设置 4. **单列显示**:默认只显示 count 列 ## 相关操作 - **GET /_cat/indices**:查看索引详细信息 - **POST /{index}/_count**:获取精确的文档数量 - **GET /{index}/_search**:搜索文档 ## 实现文件 - **REST 处理器**:`RestCountAction.java` - **基础类**:`AbstractCatAction.java`