クローズインデックスAPI

インデックスを閉じます。

Python

  1. resp = client.indices.close(
  2. index="my-index-000001",
  3. )
  4. print(resp)

Ruby

  1. response = client.indices.close(
  2. index: 'my-index-000001'
  3. )
  4. puts response

Js

  1. const response = await client.indices.close({
  2. index: "my-index-000001",
  3. });
  4. console.log(response);

コンソール

  1. POST /my-index-000001/_close

リクエスト

POST /<index>/_close

前提条件

  • Elasticsearchのセキュリティ機能が有効になっている場合、ターゲットインデックスまたはインデックスエイリアスに対してmanage インデックス権限を持っている必要があります。

説明

クローズインデックスAPIを使用して、オープンインデックスを閉じます。

クローズされたインデックスは、読み取り/書き込み操作がブロックされ、オープンインデックスが許可するすべての操作を許可しません。クローズされたインデックスでは、ドキュメントをインデックスしたり、ドキュメントを検索したりすることはできません。これにより、クローズされたインデックスは、ドキュメントのインデックスや検索のための内部データ構造を維持する必要がなくなり、クラスターのオーバーヘッドが小さくなります。

インデックスを開いたり閉じたりする際には、マスターがインデックスシャードを再起動してインデックスの新しい状態を反映させる責任があります。その後、シャードは通常の回復プロセスを経ます。オープン/クローズされたインデックスのデータは、クラスターによって自動的に複製され、常に十分なシャードコピーが安全に保持されるようにします。

複数のインデックスを開いたり閉じたりすることができます。リクエストが明示的に存在しないインデックスを参照している場合、エラーがスローされます。この動作は、ignore_unavailable=trueパラメータを使用して無効にできます。

デフォルトでは、開くまたは閉じるインデックスを明示的に指定する必要があります。_all*、または他のワイルドカード式を使用してインデックスを開くまたは閉じるには、action.destructive_requires_name設定をfalseに変更します。この設定は、クラスターの更新設定APIを介しても変更できます。

クローズされたインデックスは、管理された環境で問題を引き起こす可能性があるかなりの量のディスクスペースを消費します。インデックスを閉じることは、cluster.indices.close.enablefalseに設定することでクラスター設定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
    • 隠されたデータストリームと隠されたインデックスに一致します。openclosed、またはその両方と組み合わせる必要があります。
    • none
    • ワイルドカードパターンは受け入れられません。
      デフォルトはopenです。
  • ignore_unavailable
  • (オプション、ブール値)falseの場合、リクエストは存在しないまたはクローズされたインデックスをターゲットにする場合にエラーを返します。デフォルトはfalseです。
  • wait_for_active_shards
  • (オプション、文字列)操作を進める前にアクティブでなければならないシャードコピーの数。allまたはインデックス内のシャードの総数(number_of_replicas+1)までの任意の正の整数に設定します。デフォルト:1、プライマリシャード。
    アクティブシャードを参照してください。
  • master_timeout
  • (オプション、時間単位)マスターノードを待つ期間。タイムアウトが切れる前にマスターノードが利用できない場合、リクエストは失敗し、エラーを返します。デフォルトは30sです。リクエストがタイムアウトしないことを示すために-1に設定することもできます。
  • timeout
  • (オプション、時間単位)クラスターのメタデータを更新した後、クラスター内のすべての関連ノードからの応答を待つ期間。タイムアウトが切れる前に応答が受信されない場合、クラスターのメタデータの更新は適用されますが、応答は完全に承認されなかったことを示します。デフォルトは30sです。リクエストがタイムアウトしないことを示すために-1に設定することもできます。

以下の例は、インデックスを閉じる方法を示しています。

Python

  1. resp = client.indices.close(
  2. index="my-index-000001",
  3. )
  4. print(resp)

Ruby

  1. response = client.indices.close(
  2. index: 'my-index-000001'
  3. )
  4. puts response

Js

  1. const response = await client.indices.close({
  2. index: "my-index-000001",
  3. });
  4. console.log(response);

コンソール

  1. POST /my-index-000001/_close

APIは次の応答を返します:

コンソール-結果

  1. {
  2. "acknowledged": true,
  3. "shards_acknowledged": true,
  4. "indices": {
  5. "my-index-000001": {
  6. "closed": true
  7. }
  8. }
  9. }