索引段 API
编辑索引段 API
编辑返回有关索引分片中 Lucene 段的底层信息。对于数据流,该 API 返回有关流的后备索引的信息。
resp = client.indices.segments( index="my-index-000001", ) print(resp)
response = client.indices.segments( index: 'my-index-000001' ) puts response
const response = await client.indices.segments({ index: "my-index-000001", }); console.log(response);
GET /my-index-000001/_segments
路径参数
编辑-
<目标>
- (可选,字符串)用于限制请求的数据流、索引和别名的逗号分隔列表。支持通配符 (
*
)。要定位所有数据流和索引,请省略此参数或使用*
或_all
。
查询参数
编辑-
<vector_formats>
- (可选,布尔值)如果为
true
,则每个段中字段使用的向量格式列表将包含在输出的attributes
中。默认为false
。 -
allow_no_indices
-
(可选,布尔值)如果为
false
,则当任何通配符表达式、索引别名或_all
值仅定位到缺失或关闭的索引时,请求将返回错误。即使请求定位到其他打开的索引,此行为也适用。例如,如果一个索引以foo
开头,但没有索引以bar
开头,则定位到foo*,bar*
的请求将返回错误。默认为
true
。 -
expand_wildcards
-
(可选,字符串)通配符模式可以匹配的索引类型。如果请求可以定位到数据流,则此参数确定通配符表达式是否匹配隐藏的数据流。支持逗号分隔的值,例如
open,hidden
。有效值包括-
all
- 匹配任何数据流或索引,包括隐藏的。
-
open
- 匹配打开的、非隐藏的索引。也匹配任何非隐藏的数据流。
-
closed
- 匹配关闭的、非隐藏的索引。也匹配任何非隐藏的数据流。数据流无法关闭。
-
hidden
- 匹配隐藏的数据流和隐藏的索引。必须与
open
、closed
或两者结合使用。 -
none
- 不接受通配符模式。
默认为
open
。 -
-
ignore_unavailable
- (可选,布尔值)如果为
false
,则当请求定位到缺失或关闭的索引时,请求将返回错误。默认为false
。
响应体
编辑-
<段>
- (字符串)段的名称,例如
_0
。段名称源自段的生成,并在内部用于在分片的目录中创建文件名。 -
generation
- (整数)生成编号,例如
0
。Elasticsearch 为写入的每个段递增此生成编号。然后,Elasticsearch 使用此编号来派生段名称。 -
num_docs
- (整数)Lucene 报告的文档数。这不包括已删除的文档,并且将任何 嵌套文档 与其父文档分开计数。它也不包括最近索引的且尚未属于段的文档。
-
deleted_docs
- (整数)Lucene 报告的已删除文档数,该数字可能高于或低于你执行的删除操作数。此数字不包括最近执行的且尚未属于段的删除。如果这样做有意义,自动合并过程会清理已删除的文档。此外,Elasticsearch 创建额外的已删除文档,以在内部跟踪分片上的操作的最近历史记录。
-
size_in_bytes
- (整数)段使用的磁盘空间,例如
50kb
。 -
committed
-
(布尔值)如果为
true
,则段已同步到磁盘。同步的段可以在硬重启后继续存在。如果为
false
,则未提交的段中的数据也存储在事务日志中,以便 Elasticsearch 能够在下次启动时重播更改。 -
search
-
(布尔值)如果为
true
,则该段可搜索。如果为
false
,则该段很可能已写入磁盘,但需要刷新才能进行搜索。 -
version
- (字符串)用于写入段的 Lucene 版本。
-
compound
- (布尔值)如果为
true
,则 Lucene 将段中的所有文件合并到一个文件中以保存文件描述符。 -
attributes
- (对象)包含有关 (i) 是否启用了高压缩,(ii) 每个字段的向量格式的信息。
示例
编辑获取特定数据流或索引的段信息
编辑resp = client.indices.segments( index="test", ) print(resp)
response = client.indices.segments( index: 'test' ) puts response
const response = await client.indices.segments({ index: "test", }); console.log(response);
GET /test/_segments
获取多个数据流和索引的段信息
编辑resp = client.indices.segments( index="test1,test2", ) print(resp)
response = client.indices.segments( index: 'test1,test2' ) puts response
const response = await client.indices.segments({ index: "test1,test2", }); console.log(response);
GET /test1,test2/_segments
获取集群中所有数据流和索引的段信息
编辑resp = client.indices.segments() print(resp)
response = client.indices.segments puts response
const response = await client.indices.segments(); console.log(response);
GET /_segments
API 返回以下响应
{ "_shards": ... "indices": { "test": { "shards": { "0": [ { "routing": { "state": "STARTED", "primary": true, "node": "zDC_RorJQCao9xf9pg3Fvw" }, "num_committed_segments": 0, "num_search_segments": 1, "segments": { "_0": { "generation": 0, "num_docs": 1, "deleted_docs": 0, "size_in_bytes": 3800, "committed": false, "search": true, "version": "7.0.0", "compound": true, "attributes": { } } } } ] } } } }