Controlling the shard and replica allocation
Indices that live inside your Elasticsearch cluster can be built of many shards, and each shard can have many replicas. With the ability to have multiple shards of a single index, we can deal with indices that are too large to fit on a single machine. The reasons may be different, from memory and CPU related to storage ones. With the ability to have multiple replicas of each shard, we can handle a higher query load by spreading the replicas over multiple servers. We can say that by using shards and replicas, we can scale out Elasticsearch. However, Elasticsearch has to figure out where in the cluster it should place the shards and replicas. It needs to figure out which server/nodes each shard or replica should be placed on.
Explicitly controlling allocation
Imagine that we want to have our indices to be placed on different cluster nodes. For example, we want one index named shop
to be placed on some nodes and the second index called users
to be...