Class FilterAllocationDecider

java.lang.Object
org.elasticsearch.cluster.routing.allocation.decider.AllocationDecider
org.elasticsearch.cluster.routing.allocation.decider.FilterAllocationDecider

public class FilterAllocationDecider extends AllocationDecider
This AllocationDecider control shard allocation by include and exclude filters via dynamic cluster and index routing settings.

This filter is used to make explicit decision on which nodes certain shard can / should be allocated. The decision if a shard can be allocated, must not be allocated or should be allocated is based on either cluster wide dynamic settings (cluster.routing.allocation.*) or index specific dynamic settings (index.routing.allocation.*). All of those settings can be changed at runtime via the cluster or the index update settings API.

Note: Cluster settings are applied first and will override index specific settings such that if a shard can be allocated according to the index routing settings it wont be allocated on a node if the cluster specific settings would disallow the allocation. Filters are applied in the following order:
  1. required - filters required allocations. If any required filters are set the allocation is denied if the index is not in the set of required to allocate on the filtered node
  2. include - filters "allowed" allocations. If any include filters are set the allocation is denied if the index is not in the set of include filters for the filtered node
  3. exclude - filters "prohibited" allocations. If any exclude filters are set the allocation is denied if the index is in the set of exclude filters for the filtered node