Rebalance the data within the shards?

Is there a way to rebalance the data within the shards?

Just like:

Source:

shard total
0 45488
1 0
2 512
3 0
4 4000

Target:

shard total
0 10000
1 10000
2 10000
3 10000
4 10000

Why do you have such an uneven distribution in the first place? Are you using routing, nested documents and/or parent-child?

Thank you for your reminding.

I realized that I had set up routing that caused the data to be migrated to specific shard when stored.

XD