Searchable snapshot

edit

Phases allowed: hot, cold.

Takes a snapshot of the managed index in the configured repository and mounts it as a searchable snapshot. If the index is part of a data stream, the mounted index replaces the original index in the stream.

The searchable_snapshot action requires data tiers. The action uses the index.routing.allocation.include._tier_preference setting to mount the index directly to the phase’s corresponding data tier. For example, in the cold phase, the action mounts a searchable snapshot index to the cold data tier.

If the searchable_snapshot action is used in the hot phase the subsequent phases cannot define any of the shrink, forcemerge, freeze or searchable_snapshot (also available in the cold phase) actions.

This action cannot be performed on a data stream’s write index. Attempts to do so will fail. To convert the index to a searchable snapshot, first manually roll over the data stream. This creates a new write index. Because the index is no longer the stream’s write index, the action can then convert it to a searchable snapshot. Using a policy that makes use of the rollover action in the hot phase will avoid this situation and the need for a manual rollover for future managed indices.

By default, this snapshot is deleted by the delete action in the delete phase. To keep the snapshot, set delete_searchable_snapshot to false in the delete action.

Options

edit
snapshot_repository
(Required, string) Specifies where to store the snapshot. See Register repository for more information.
force_merge_index
(Optional, Boolean) Force merges the managed index to one segment. Defaults to true. If the managed index was already force merged using the force merge action in a previous action the searchable snapshot action force merge step will be a no-op.

The forcemerge action is best effort. It might happen that some of the shards are relocating, in which case they will not be merged. The searchable_snapshot action will continue executing even if not all shards are force merged.

Examples

edit
PUT _ilm/policy/my_policy
{
  "policy": {
    "phases": {
      "cold": {
        "actions": {
          "searchable_snapshot" : {
            "snapshot_repository" : "backing_repo"
          }
        }
      }
    }
  }
}