ダングリングインデックスAPIのインポート

ダングリングインデックスをインポートします。

リクエスト

Python

  1. resp = client.dangling_indices.import_dangling_index(
  2. index_uuid="<index-uuid>",
  3. accept_data_loss=True,
  4. )
  5. print(resp)

Js

  1. const response = await client.danglingIndices.importDanglingIndex({
  2. index_uuid: "<index-uuid>",
  3. accept_data_loss: "true",
  4. });
  5. console.log(response);

コンソール

  1. POST /_dangling/<index-uuid>?accept_data_loss=true

前提条件

  • Elasticsearchのセキュリティ機能が有効になっている場合、このAPIを使用するには、manage クラスター権限を持っている必要があります。

説明

Elasticsearchが現在のクラスター状態に存在しないインデックスデータに遭遇した場合、それらのインデックスはダングリングと見なされます。たとえば、Elasticsearchノードがオフラインの間にcluster.indices.tombstones.sizeインデックスを超えて削除すると、これが発生する可能性があります。

UUIDを参照して、クラスターに単一のインデックスをインポートします。ダングリングインデックスのリストAPIを使用して、インデックスのUUIDを特定します。

パスパラメータ

クエリパラメータ

  • accept_data_loss
  • (必須、ブール値) このフィールドは、ダングリングインデックスをインポートするためにtrueに設定する必要があります。Elasticsearchは、ダングリングインデックスデータがどこから来たのか、どのシャードコピーが新鮮でどれが古いのかを知ることができないため、インポートされたデータがクラスターに最後に存在したときのインデックスの最新の状態を表すことを保証できません。
  • master_timeout
  • (オプション、時間単位) マスターノードを待機する期間。タイムアウトが切れる前にマスターノードが利用できない場合、リクエストは失敗し、エラーが返されます。デフォルトは30sです。リクエストがタイムアウトしないことを示すために-1に設定することもできます。
  • timeout
  • (オプション、時間単位) クラスターのメタデータを更新した後、クラスター内のすべての関連ノードからの応答を待機する期間。タイムアウトが切れる前に応答が受信されない場合、クラスターのメタデータの更新は適用されますが、応答は完全に承認されなかったことを示します。デフォルトは30sです。リクエストがタイムアウトしないことを示すために-1に設定することもできます。

以下の例は、ダングリングインデックスをインポートする方法を示しています:

Python

  1. resp = client.dangling_indices.import_dangling_index(
  2. index_uuid="zmM4e0JtBkeUjiHD-MihPQ",
  3. accept_data_loss=True,
  4. )
  5. print(resp)

Js

  1. const response = await client.danglingIndices.importDanglingIndex({
  2. index_uuid: "zmM4e0JtBkeUjiHD-MihPQ",
  3. accept_data_loss: "true",
  4. });
  5. console.log(response);

コンソール

  1. POST /_dangling/zmM4e0JtBkeUjiHD-MihPQ?accept_data_loss=true

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

コンソール-結果

  1. {
  2. "acknowledged" : true
  3. }