検索シャードAPI
検索リクエストが実行されるインデックスとシャードを返します。
Python
resp = client.search_shards(
index="my-index-000001",
)
print(resp)
Ruby
response = client.search_shards(
index: 'my-index-000001'
)
puts response
Js
const response = await client.searchShards({
index: "my-index-000001",
});
console.log(response);
コンソール
GET /my-index-000001/_search_shards
リクエスト
GET /<target>/_search_shards
前提条件
- Elasticsearchのセキュリティ機能が有効な場合、ターゲットデータストリーム、インデックス、またはエイリアスに対して、
view_index_metadata
またはmanage
インデックス権限を持っている必要があります。
説明
検索シャードAPIは、検索リクエストが実行されるインデックスとシャードを返します。これは、ルーティングやシャードの優先順位に関する問題を解決したり、最適化を計画したりする際に役立つフィードバックを提供します。フィルタリングされたエイリアスが使用される場合、フィルターはindices
セクションの一部として返されます。
パスパラメータ
<target>
- (オプション、文字列)検索するデータストリーム、インデックス、およびエイリアスのカンマ区切りリスト。ワイルドカード(
*
)をサポートします。すべてのデータストリームとインデックスを検索するには、このパラメータを省略するか、*
または_all
を使用します。
クエリパラメータ
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
です。 local
- (オプション、ブール値)
true
の場合、リクエストはローカルノードからのみ情報を取得します。デフォルトはfalse
で、これはマスターノードから情報を取得することを意味します。 preference
- (オプション、文字列)操作を実行するノードまたはシャードを指定します。デフォルトはランダムです。
routing
- (オプション、文字列)特定のシャードに操作をルーティングするために使用されるカスタム値。
例
Python
resp = client.search_shards(
index="my-index-000001",
)
print(resp)
Ruby
response = client.search_shards(
index: 'my-index-000001'
)
puts response
Js
const response = await client.searchShards({
index: "my-index-000001",
});
console.log(response);
コンソール
GET /my-index-000001/_search_shards
コンソール-結果
{
"nodes": ...,
"indices" : {
"my-index-000001": { }
},
"shards": [
[
{
"index": "my-index-000001",
"node": "JklnKbD7Tyqi9TP3_Q_tBg",
"relocating_node": null,
"primary": true,
"shard": 0,
"state": "STARTED",
"allocation_id": {"id":"0TvkCyF7TAmM1wHP4a42-A"},
"relocation_failure_info" : {
"failed_attempts" : 0
}
}
],
[
{
"index": "my-index-000001",
"node": "JklnKbD7Tyqi9TP3_Q_tBg",
"relocating_node": null,
"primary": true,
"shard": 1,
"state": "STARTED",
"allocation_id": {"id":"fMju3hd1QHWmWrIgFnI4Ww"},
"relocation_failure_info" : {
"failed_attempts" : 0
}
}
],
[
{
"index": "my-index-000001",
"node": "JklnKbD7Tyqi9TP3_Q_tBg",
"relocating_node": null,
"primary": true,
"shard": 2,
"state": "STARTED",
"allocation_id": {"id":"Nwl0wbMBTHCWjEEbGYGapg"},
"relocation_failure_info" : {
"failed_attempts" : 0
}
}
],
[
{
"index": "my-index-000001",
"node": "JklnKbD7Tyqi9TP3_Q_tBg",
"relocating_node": null,
"primary": true,
"shard": 3,
"state": "STARTED",
"allocation_id": {"id":"bU_KLGJISbW0RejwnwDPKw"},
"relocation_failure_info" : {
"failed_attempts" : 0
}
}
],
[
{
"index": "my-index-000001",
"node": "JklnKbD7Tyqi9TP3_Q_tBg",
"relocating_node": null,
"primary": true,
"shard": 4,
"state": "STARTED",
"allocation_id": {"id":"DMs7_giNSwmdqVukF7UydA"},
"relocation_failure_info" : {
"failed_attempts" : 0
}
}
]
]
}
同じリクエストを指定し、今回はルーティング値を使用します:
Python
resp = client.search_shards(
index="my-index-000001",
routing="foo,bar",
)
print(resp)
Ruby
response = client.search_shards(
index: 'my-index-000001',
routing: 'foo,bar'
)
puts response
Js
const response = await client.searchShards({
index: "my-index-000001",
routing: "foo,bar",
});
console.log(response);
コンソール
GET /my-index-000001/_search_shards?routing=foo,bar
コンソール-結果
{
"nodes": ...,
"indices" : {
"my-index-000001": { }
},
"shards": [
[
{
"index": "my-index-000001",
"node": "JklnKbD7Tyqi9TP3_Q_tBg",
"relocating_node": null,
"primary": true,
"shard": 2,
"state": "STARTED",
"allocation_id": {"id":"fMju3hd1QHWmWrIgFnI4Ww"},
"relocation_failure_info" : {
"failed_attempts" : 0
}
}
],
[
{
"index": "my-index-000001",
"node": "JklnKbD7Tyqi9TP3_Q_tBg",
"relocating_node": null,
"primary": true,
"shard": 3,
"state": "STARTED",
"allocation_id": {"id":"0TvkCyF7TAmM1wHP4a42-A"},
"relocation_failure_info" : {
"failed_attempts" : 0
}
}
]
]
}
指定されたルーティング値のため、検索は2つのシャードに対してのみ実行されます。