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