# 索引->统计信息/段

## Indices Stats /索引统计信息

索引级统计提供索引上发生的不同操作的统计信息。**API** 提供了索引级范围的统计信息（虽然大多数统计信息可以使用节点级别范围检索）。

以下为返回所有索引的高聚合和索引等级的统计信息请求：

```
GET /_stats
```

可以使用以下方式检索特定索引的统计信息：

```
GET /index1,index2/_stats
```

默认情况下，返回所有统计信息。可以通过指定 **URI** 返回特定的统计信息。这些统计信息可以是以下的任意一种。

默认情况下，返回所有统计信息。可以通过指定 **URI** 返回特定的统计信息。这些统计信息可以是以下的任意一种。

| 字段             | 描述                                                                                                                          |
| -------------- | --------------------------------------------------------------------------------------------------------------------------- |
| docs           | 文档和已删除文档（尚未合并的文档）的数量。注意，此值受刷新索引的影响。                                                                                         |
| store          | 索引的大小。                                                                                                                      |
| indexing       | 索引统计信息，可以用逗号分隔的`type`列表组合，以提供文档级统计信息。                                                                                       |
| get            | 获取统计信息，包括缺失的统计信息。                                                                                                           |
| search         | 包含建议统计信息的搜索统计信息。你可以通过添加额外`group`参数（搜索操作可以与一个或多个`group`相关联）来包含自定义组的统计信息。`groups`参数接受以逗号分隔的`group`名称列表。使用\_all返回所有组的统计信息。     |
| segments       | 检索打开的分段的内存使用。可以选择设置`include_segment_file_sizes`标志，报告每个**Lucene**索引文件的聚合磁盘使用情况。                                              |
| completion     | 完成建议统计。                                                                                                                     |
| fielddata      | 正排索引统计信息。                                                                                                                   |
| flush          | 刷新统计信息。                                                                                                                     |
| merge          | 合并统计信息。                                                                                                                     |
| request\_cache | [Shard request cache statistics.](https://www.elastic.co/guide/en/elasticsearch/reference/current/shard-request-cache.html) |
| refresh        | 刷新统计信息。                                                                                                                     |
| warmer         | Warmer statistics.                                                                                                          |
| translog       | 事务日志统计信息。                                                                                                                   |

一些统计信息允许每个字段的粒度，它接受逗号分隔符包含的字段列表。在默认情况下，包括所有字段：

| 字段                 | 描述                                     |
| ------------------ | -------------------------------------- |
| fields             | 要包括在统计信息中的字段列表。如果没有提供更具体的字段列表，则使用默认列表。 |
| completion\_fields | 包括在完成建议统计信息中的字段列表。                     |
| fielddata\_fields  | 包括在正排索引统计信息中的字段列表。                     |

这里有一些例子：

```
# Get back stats for merge and refresh only for all indices

GET /_stats/merge,refresh
# Get back stats for type1 and type2 documents for the my_index index
GET /my_index/_stats/indexing?types=type1,type2

# Get back just search stats for group1 and group2
GET /_stats/search?groups=group1,group2
```

返回的统计信息是索引级的聚合结果，具有`primaries`和`total`的聚合结果。其中`primaries`只是主分片的值，`total`是主分片和副本分片的累积值。

为了收集分片级别的统计信息，要将`level`参数设置为`shards`。

注意，随着分片在集群中移动，它们在其他节点上创建时，统计信息会被清除。另一方面，即使分片“离开”一个节点，那个节点依然会保留分片记录的统计信息。

## Indices Segments 索引段

提供 **Lucene** 索引构建的低级别段信息。允许用于提供分片和索引状态、可优化信息和删除引起的数据”浪费“等详细信息。

端点包括特定索引、多个索引或者全部的段。

```
curl -XGET 'http://localhost:9200/test/_segments'
curl -XGET 'http://localhost:9200/test1,test2/_segments'
curl -XGET 'http://localhost:9200/_segments'
```

响应：

```
{
```

```
    ...
        "_3": {
            "generation": 3,
            "num_docs": 1121,
            "deleted_docs": 53,
            "size_in_bytes": 228288,
            "memory_in_bytes": 3211,
            "committed": true,
            "search": true,
            "version": "4.6",
            "compound": true
        }
    ...
}
```

| \_0               | JSON文档的键是段的名字。此名称用户生成文件名：在分片目录中以此名称开头的所有文件都属于此段。                                             |
| ----------------- | -------------------------------------------------------------------------------------------- |
| generation        | 当需要写入新的段时 ，generation 的数值会递增。段名称源于这个 generation数值。                                           |
| num\_docs         | 此分段中存储的未删除文档的数量。                                                                             |
| deleted\_docs     | 此分段中存储的已删除文档的数量。如果这个数字大于0，则当此分段合并时回收空间是完全正常的。                                                |
| size\_in\_bytes   | 此分段使用的磁盘空间，单位是bytes。                                                                         |
| memory\_in\_bytes | 分段需要将一些数据存储到内存中以便高效搜索。此数字设置内存的字节数来达到此目的。当这个值为-1时 Elasticsearch 不会计算该值。                       |
| committed         | 表示分段是否已经在磁盘上同步。提交的分段可以在硬重启后保留。未提交的分段也会保存在事务日志中，以便 Elasticsearch 在下一次启动时重放变更，所以此值为false也无需担心。 |
| search            | 表示该分段是否可以搜索。当值为false时很可能意味着改分段已经写入磁盘，但是之后没用刷新让它可以搜索。                                         |
| version           | 表示编写此分段的Lucene版本。                                                                            |
| compound          | 表示此分段是否存储在复合文件中。当为true时，这表示Lucene将分段中的所有文件都合并在一个文件中，以保存文件描述符。                                |

### 详细模式

要添加用于调试的附加信息，要使用`verbose`标志。

> 附加详细信息的格式处于实验阶段，随时可能修改。

```
curl -XGET 'http://localhost:9200/test/_segments?verbose=true'
```

响应：

```
{
    ...
        "_3": {
            ...
            "ram_tree": [
                {
                    "description": "postings [PerFieldPostings(format=1)]",
                    "size_in_bytes": 2696,
                    "children": [
                        {
                            "description": "format 'Lucene50_0' ...",
                            "size_in_bytes": 2608,
                            "children" :[ ... ]
                        },
                        ...
                    ]
                },
                ...
                ]

        }
    ...
}
```
