we don't want to sync write to replica. So we'd like to modified it.
You cannot, it is no longer configurable in 2.X.
so the only way to asyn is to let client change it, right?
No, you cannot do it. At all.
under this situation, when a shard is down, how ES deal with write request? will it wait for recovery then execute write or it will response fail to client before recovery?
Write consistency still applies here, so it depends on how many replicas you have.