検索可能なスナップショット
許可されるフェーズ: ホット、コールド、フローズン。
構成されたリポジトリ内の管理インデックスのスナップショットを取得し、検索可能なスナップショットとしてマウントします。インデックスがdata streamの一部である場合、マウントされたインデックスはストリーム内の元のインデックスを置き換えます。
searchable_snapshot
アクションはdata tiersを必要とします。このアクションは、index.routing.allocation.include._tier_preference
設定を使用して、インデックスをフェーズに対応するデータティアに直接マウントします。フローズンフェーズでは、このアクションは、partial-
で接頭辞が付けられた部分的にマウントされたインデックスをフローズンティアにマウントします。他のフェーズでは、このアクションは、restored-
で接頭辞が付けられた完全にマウントされたインデックスを対応するデータティアにマウントします。
フローズンティアでは、元のインデックスに存在した場合、設定index.routing.allocation.total_shards_per_node
は無視され、フローズンティアと他のティア間のノード数の違いを考慮します。
`````searchable_snapshot`````アクションがホットフェーズで使用されると、次のフェーズには`````shrink`````または`````forcemerge`````アクションを含めることができません。
このアクションは、データストリームの書き込みインデックスでは実行できません。試みると失敗します。インデックスを検索可能なスナップショットに変換するには、まず[data streamを手動でロールオーバー](491eefa734aefc6e.md#manually-roll-over-a-data-stream)します。これにより、新しい書き込みインデックスが作成されます。インデックスがもはやストリームの書き込みインデックスでないため、このアクションはそれを検索可能なスナップショットに変換できます。ホットフェーズで[ロールオーバー](/read/elasticsearch-8-15/f42dc394ce9c7e94.md)アクションを使用するポリシーを使用すると、この状況と将来の管理インデックスの手動ロールオーバーの必要が回避されます。
検索可能なスナップショットインデックスのシャードをマウントおよび再配置するには、スナップショットリポジトリからシャードの内容をコピーする必要があります。これにより、通常のインデックスでノード間のコピーが発生するのとは異なるコストが発生する可能性があります。これらのコストは通常は低いですが、一部の環境では高くなる可能性があります。詳細については、[検索可能なスナップショットでコストを削減する](242606a6bb8c405c.md#searchable-snapshots-costs)を参照してください。
デフォルトでは、このスナップショットは削除フェーズで[削除アクション](/read/elasticsearch-8-15/b2a3233aadaf433f.md)によって削除されます。スナップショットを保持するには、削除アクションで`````delete_searchable_snapshot`````を`````false`````に設定します。このスナップショットの保持は、インデックスライフサイクル管理(ILM)ポリシーに基づいており、スナップショットライフサイクル管理(SLM)ポリシーの影響を受けません。
## オプション
- `````snapshot_repository
- (必須、文字列) スナップショットを保存するために使用されるリポジトリ。
force_merge_index
- (オプション、ブール値) 管理インデックスを1つのセグメントに強制的にマージします。デフォルトは
true
です。管理インデックスが以前のアクションで強制マージアクションを使用してすでに強制的にマージされている場合、searchable snapshot
アクションの強制マージステップは何もしません。
この強制マージは、インデックスが`````searchable_snapshot`````アクションの**前**にあるフェーズで発生します。たとえば、`````hot`````フェーズで`````searchable_snapshot`````アクションを使用する場合、強制マージはホットノードで実行されます。`````cold`````フェーズで`````searchable_snapshot`````アクションを使用する場合、強制マージは`````cold`````フェーズの**前**にインデックスがあるティア(`````hot`````または`````warm`````のいずれか)で実行されます。
## 例
#### Python
``````python
resp = client.ilm.put_lifecycle(
name="my_policy",
policy={
"phases": {
"cold": {
"actions": {
"searchable_snapshot": {
"snapshot_repository": "backing_repo"
}
}
}
}
},
)
print(resp)
`
Js
const response = await client.ilm.putLifecycle({
name: "my_policy",
policy: {
phases: {
cold: {
actions: {
searchable_snapshot: {
snapshot_repository: "backing_repo",
},
},
},
},
},
});
console.log(response);
コンソール
PUT _ilm/policy/my_policy
{
"policy": {
"phases": {
"cold": {
"actions": {
"searchable_snapshot" : {
"snapshot_repository" : "backing_repo"
}
}
}
}
}
}