Since you have an LB in front, you can use search preference. Set it to local
. Then, if HAProxy decides to hit just one node (if it’s available), that node will take all the load.
This assumes all 3 nodes have all data (number_of_shards=2). And preference applies only to searches, indexing load will be about the same on all 3 anyway (unless you use segment replication).