オープンインデックスAPI

閉じたインデックスを開きます。データストリームの場合、APIはすべての閉じたバックインデックスを開きます。

Python

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

Ruby

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

Js

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

コンソール

  1. POST /my-index-000001/_open

リクエスト

POST /<target>/_open

前提条件

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

説明

オープンインデックスAPIを使用して、閉じたインデックスを再オープンできます。リクエストがデータストリームを対象とする場合、リクエストはストリームの閉じたバックインデックスのいずれかを再オープンします。

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

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

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

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

閉じたインデックスは、管理された環境で問題を引き起こす可能性があるかなりの量のディスクスペースを消費します。インデックスを閉じることは、cluster.indices.close.enablefalseに設定することでクラスター設定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
    • 隠しデータストリームと隠しインデックスに一致します。openclosed、またはその両方と組み合わせる必要があります。
    • 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

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

Ruby

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

Js

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

コンソール

  1. POST /my-index-000001/_open

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

コンソール-結果

  1. {
  2. "acknowledged" : true,
  3. "shards_acknowledged" : true
  4. }