How to change the default way of data distribution into shards?

Hey

How can we change the default way of data allocation to shards(which is
hashing of some unique id) to some range basis
like all the ids ranging from 1-100 will go to shard1, 101-200 to shard2
and so on?
(I think using Routing we can do that but any help would be greatly
appreciated)

Also if we are able to do the sharding on some range basis, then if new
products come in future with higher range of ids then
can we increase the number of shards dynamically without bringing down the
whole cluster?

Any feedback on the above questions..!!!

Thanks