索引分片存储 API编辑

检索一个或多个索引中副本分片的存储信息。对于数据流,API 会检索流的后台索引的存储信息。

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

请求编辑

GET /<target>/_shard_stores

GET /_shard_stores

先决条件编辑

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

描述编辑

索引分片存储 API 返回以下信息

  • 每个副本分片所在的节点
  • 每个副本分片的分配 ID
  • 每个副本分片的唯一 ID
  • 打开分片索引时遇到的任何错误或先前故障中的错误

默认情况下,API 仅返回未分配或具有一个或多个未分配副本分片的主分片的存储信息。

路径参数编辑

<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
status

(可选,字符串)用于限制请求的分片运行状况状态的逗号分隔列表。

有效值包括

green
主分片和所有副本分片均已分配。
yellow
一个或多个副本分片未分配。
red
主分片未分配。
all
返回所有分片,无论其运行状况状态如何。

默认为 yellow,red

max_concurrent_shard_requests

(可选,整数)协调节点发送的并发分片级请求的最大数量。默认为 100。较大的值可能会更快地响应定位到许多分片的请求,但也可能会对其他集群操作造成更大的影响。

示例编辑

获取特定数据流或索引的分片存储信息编辑

response = client.indices.shard_stores(
  index: 'test'
)
puts response
GET /test/_shard_stores

获取多个数据流和索引的分片存储信息编辑

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

获取所有数据流和索引的分片存储信息编辑

response = client.indices.shard_stores
puts response
GET /_shard_stores

根据集群运行状况获取分片存储信息编辑

您可以使用 status 查询参数根据分片运行状况限制返回的信息。

以下请求仅返回已分配的主分片和副本分片的信息。

response = client.indices.shard_stores(
  status: 'green'
)
puts response
GET /_shard_stores?status=green

API 返回以下响应

{
   "indices": {
       "my-index-000001": {
           "shards": {
              "0": { 
                "stores": [ 
                    {
                        "sPa3OgxLSYGvQ4oPs-Tajw": { 
                            "name": "node_t0",
                            "ephemeral_id" : "9NlXRFGCT1m8tkvYCMK-8A",
                            "transport_address": "local[1]",
                            "external_id": "node_t0",
                            "attributes": {},
                            "roles": [...],
                            "version": "8.10.0",
                            "min_index_version": 7000099,
                            "max_index_version": 8100099
                        },
                        "allocation_id": "2iNySv_OQVePRX-yaRH_lQ", 
                        "allocation" : "primary|replica|unused" 
                        "store_exception": ... 
                    }
                ]
              }
           }
       }
   }
}

键是存储信息的对应分片 ID

分片所有副本的存储信息列表

托管存储副本的节点信息,键是唯一的节点 ID。

存储副本的分配 ID

存储副本的状态,无论其是用作主副本、副本还是根本未使用

打开分片索引时遇到的任何异常或先前引擎故障中的异常