ダングリングインデックスAPIのインポート
ダングリングインデックスをインポートします。
リクエスト
Python
resp = client.dangling_indices.import_dangling_index(
index_uuid="<index-uuid>",
accept_data_loss=True,
)
print(resp)
Js
const response = await client.danglingIndices.importDanglingIndex({
index_uuid: "<index-uuid>",
accept_data_loss: "true",
});
console.log(response);
コンソール
POST /_dangling/<index-uuid>?accept_data_loss=true
前提条件
- Elasticsearchのセキュリティ機能が有効になっている場合、このAPIを使用するには、
manage
クラスター権限を持っている必要があります。
説明
Elasticsearchが現在のクラスター状態に存在しないインデックスデータに遭遇した場合、それらのインデックスはダングリングと見なされます。たとえば、Elasticsearchノードがオフラインの間にcluster.indices.tombstones.size
インデックスを超えて削除すると、これが発生する可能性があります。
UUIDを参照して、クラスターに単一のインデックスをインポートします。ダングリングインデックスのリストAPIを使用して、インデックスのUUIDを特定します。
パスパラメータ
<index-uuid>
- (必須、文字列) インポートするインデックスのUUID。これは、ダングリングインデックスのリストAPIを使用して見つけることができます。
クエリパラメータ
accept_data_loss
- (必須、ブール値) このフィールドは、ダングリングインデックスをインポートするために
true
に設定する必要があります。Elasticsearchは、ダングリングインデックスデータがどこから来たのか、どのシャードコピーが新鮮でどれが古いのかを知ることができないため、インポートされたデータがクラスターに最後に存在したときのインデックスの最新の状態を表すことを保証できません。 master_timeout
- (オプション、時間単位) マスターノードを待機する期間。タイムアウトが切れる前にマスターノードが利用できない場合、リクエストは失敗し、エラーが返されます。デフォルトは
30s
です。リクエストがタイムアウトしないことを示すために-1
に設定することもできます。 timeout
- (オプション、時間単位) クラスターのメタデータを更新した後、クラスター内のすべての関連ノードからの応答を待機する期間。タイムアウトが切れる前に応答が受信されない場合、クラスターのメタデータの更新は適用されますが、応答は完全に承認されなかったことを示します。デフォルトは
30s
です。リクエストがタイムアウトしないことを示すために-1
に設定することもできます。
例
以下の例は、ダングリングインデックスをインポートする方法を示しています:
Python
resp = client.dangling_indices.import_dangling_index(
index_uuid="zmM4e0JtBkeUjiHD-MihPQ",
accept_data_loss=True,
)
print(resp)
Js
const response = await client.danglingIndices.importDanglingIndex({
index_uuid: "zmM4e0JtBkeUjiHD-MihPQ",
accept_data_loss: "true",
});
console.log(response);
コンソール
POST /_dangling/zmM4e0JtBkeUjiHD-MihPQ?accept_data_loss=true
コンソール-結果
{
"acknowledged" : true
}