オープンインデックスAPI
閉じたインデックスを開きます。データストリームの場合、APIはすべての閉じたバックインデックスを開きます。
Python
resp = client.indices.open(
index="my-index-000001",
)
print(resp)
Ruby
response = client.indices.open(
index: 'my-index-000001'
)
puts response
Js
const response = await client.indices.open({
index: "my-index-000001",
});
console.log(response);
コンソール
POST /my-index-000001/_open
リクエスト
POST /<target>/_open
前提条件
- Elasticsearchのセキュリティ機能が有効になっている場合、ターゲットデータストリーム、インデックス、またはエイリアスに対して
manage
インデックス権限を持っている必要があります。
説明
オープンインデックスAPIを使用して、閉じたインデックスを再オープンできます。リクエストがデータストリームを対象とする場合、リクエストはストリームの閉じたバックインデックスのいずれかを再オープンします。
閉じたインデックスは、読み取り/書き込み操作がブロックされ、オープンインデックスが許可するすべての操作を許可しません。閉じたインデックスでは、ドキュメントをインデックスしたり、ドキュメントを検索したりすることはできません。これにより、閉じたインデックスはドキュメントのインデックスや検索のための内部データ構造を維持する必要がなくなり、クラスターのオーバーヘッドが小さくなります。
インデックスを開いたり閉じたりする際、マスターはインデックスの新しい状態を反映するためにインデックスシャードを再起動する責任があります。シャードはその後、通常の回復プロセスを経ます。オープン/クローズされたインデックスのデータは、クラスターによって自動的に複製され、常に十分なシャードコピーが安全に保持されることを保証します。
複数のインデックスを開いたり閉じたりすることができます。リクエストが明示的に存在しないインデックスを参照する場合、エラーがスローされます。この動作は、ignore_unavailable=true
パラメータを使用して無効にできます。
デフォルトでは、開くまたは閉じるインデックスを明示的に指定する必要があります。_all
、*
、または他のワイルドカード式を使用してインデックスを開くまたは閉じるには、action.destructive_requires_name
設定をfalse
に変更します。この設定は、クラスターの更新設定APIを介しても変更できます。
閉じたインデックスは、管理された環境で問題を引き起こす可能性があるかなりの量のディスクスペースを消費します。インデックスを閉じることは、cluster.indices.close.enable
をfalse
に設定することでクラスター設定APIを介して無効にできます。デフォルトはtrue
です。
アクティブシャードの待機
インデックスを開いたり閉じたりすることは、そのシャードを割り当てるため、インデックス作成時のwait_for_active_shards
設定は、_open
および_close
インデックスアクションにも適用されます。
パスパラメータ
<target>
- (オプション、文字列) リクエストを制限するために使用されるデータストリーム、インデックス、およびエイリアスのカンマ区切りリスト。ワイルドカードをサポートします(
*
)。
デフォルトでは、リクエストを制限するために使用するインデックスを明示的に指定する必要があります。_all
、*
、または他のワイルドカード式を使用してリクエストを制限するには、action.destructive_requires_name
設定をfalse
に変更します。この設定は、elasticsearch.yml
ファイル内で更新するか、クラスター更新設定APIを使用して更新できます。
クエリパラメータ
allow_no_indices
- (オプション、ブール値)
false
の場合、リクエストは、ワイルドカード式、インデックスエイリアス、または_all
値が存在しないまたは閉じたインデックスのみを対象とする場合にエラーを返します。この動作は、リクエストが他のオープンインデックスを対象とする場合でも適用されます。たとえば、foo*,bar*
を対象とするリクエストは、foo
で始まるインデックスが存在しない場合にエラーを返しますが、bar
で始まるインデックスは存在しません。
デフォルトはtrue
です。 expand_wildcards
- (オプション、文字列) ワイルドカードパターンが一致できるインデックスのタイプ。リクエストがデータストリームを対象とできる場合、この引数はワイルドカード式が隠しデータストリームと一致するかどうかを決定します。カンマ区切りの値をサポートします(
open,hidden
)。有効な値は次のとおりです:all
- すべてのデータストリームまたはインデックスに一致します。隠しインデックスも含まれます[b10cb0563daae284.md#multi-hidden]。
open
- オープンで非隠しのインデックスに一致します。また、非隠しデータストリームにも一致します。
closed
- 閉じた非隠しインデックスに一致します。また、非隠しデータストリームにも一致します。データストリームは閉じることができません。
hidden
- 隠しデータストリームと隠しインデックスに一致します。
open
、closed
、またはその両方と組み合わせる必要があります。 none
- ワイルドカードパターンは受け付けられません。
デフォルトはclosed
です。
ignore_unavailable
- (オプション、ブール値)
false
の場合、リクエストは存在しないまたは閉じたインデックスを対象とする場合にエラーを返します。デフォルトはfalse
です。 wait_for_active_shards
- (オプション、文字列) 操作を進める前にアクティブでなければならないシャードコピーの数。
all
またはインデックス内のシャードの総数(number_of_replicas+1
)までの任意の正の整数に設定します。デフォルト:1、プライマリシャード。
アクティブシャードを参照してください。 master_timeout
- (オプション、時間単位) マスターノードを待機する期間。タイムアウトが切れる前にマスターノードが利用できない場合、リクエストは失敗し、エラーが返されます。デフォルトは
30s
です。リクエストがタイムアウトしないことを示すために-1
に設定することもできます。 timeout
- (オプション、時間単位) クラスターのメタデータを更新した後、クラスター内のすべての関連ノードからの応答を待機する期間。タイムアウトが切れる前に応答が受信されない場合、クラスターのメタデータの更新は適用されますが、応答は完全に承認されなかったことを示します。デフォルトは
30s
です。リクエストがタイムアウトしないことを示すために-1
に設定することもできます。
例
次のリクエストは、my-index-000001
という名前の閉じたインデックスを再オープンします。
Python
resp = client.indices.open(
index="my-index-000001",
)
print(resp)
Ruby
response = client.indices.open(
index: 'my-index-000001'
)
puts response
Js
const response = await client.indices.open({
index: "my-index-000001",
});
console.log(response);
コンソール
POST /my-index-000001/_open
コンソール-結果
{
"acknowledged" : true,
"shards_acknowledged" : true
}