索引段 API编辑

返回有关索引分片中 Lucene 段的低级信息。对于数据流,API 返回有关流的后台索引的信息。

response = client.indices.segments(
  index: 'my-index-000001'
)
puts response
GET /my-index-000001/_segments

请求编辑

GET /<target>/_segments

GET /_segments

前提条件编辑

  • 如果启用了 Elasticsearch 安全功能,则您必须对目标数据流、索引或别名具有 monitormanage 索引权限

路径参数编辑

<target>
(可选,字符串)用于限制请求的数据流、索引和别名的逗号分隔列表。支持通配符 (*)。要定位所有数据流和索引,请省略此参数或使用 *_all

查询参数编辑

allow_no_indices

(可选,布尔值)如果为 false,则如果任何通配符表达式、索引别名_all 值仅定位到缺少或关闭的索引,则请求将返回错误。即使请求定位到其他打开的索引,此行为也适用。例如,如果索引以 foo 开头但没有索引以 bar 开头,则定位到 foo*,bar* 的请求将返回错误。

默认为 true

expand_wildcards

(可选,字符串)通配符模式可以匹配的索引类型。如果请求可以定位数据流,则此参数确定通配符表达式是否匹配隐藏数据流。支持逗号分隔值,例如 open,hidden。有效值为

all
匹配任何数据流或索引,包括 隐藏的 数据流或索引。
open
匹配打开的、非隐藏的索引。也匹配任何非隐藏的数据流。
closed
匹配关闭的、非隐藏的索引。也匹配任何非隐藏的数据流。数据流不能关闭。
hidden
匹配隐藏的数据流和隐藏的索引。必须与 openclosed 或两者结合使用。
none
不接受通配符模式。

默认为 open

ignore_unavailable
(可选,布尔值)如果为 false,则如果请求定位到缺少或关闭的索引,则请求将返回错误。默认为 false

响应正文编辑

<segment>
(字符串)段的名称,例如 _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
(对象)包含有关是否启用了高压缩的信息。

示例编辑

获取特定数据流或索引的段信息编辑

response = client.indices.segments(
  index: 'test'
)
puts response
GET /test/_segments

获取多个数据流和索引的段信息编辑

response = client.indices.segments(
  index: 'test1,test2'
)
puts response
GET /test1,test2/_segments

获取集群中所有数据流和索引的段信息编辑

response = client.indices.segments
puts 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": {
                }
              }
            }
          }
        ]
      }
    }
  }
}