I have a cluster with three data nodes with an index that has three primary shards with one replica each. When I stop one of the nodes, Elasticsearch promotes one of the replicas elsewhere to primary. At this time I have two primaries on one of my two active data nodes. When I restart the node I previously stopped it reallocates the replicas left unassigned to the now newly active node. The Primary "moved" during shutdown remains where it is with one of it's brothers.
I understand that for search all shards participate in searching. I also understand that for indexing we write to primary first and then replicate to the replica.
I have noticed that during heavy search load testing the node with more than one primary exhibits greater CPU utilization.
Is there is a way to bias Elasticsearch to re-balance the primaries automatically when the absent node rejoins the cluster? I can execute the reroute API manually but I'd like this to be as automatic as possible.