提供 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" :[ ... ]
},
...
]
},
...
]
}
...
}