The most mature is the TransportClient IMO.
BUT if you think about the future, this client will be retired in the future and you should consider instead the REST Client. Not as mature but lot of needed APIs for most use cases are here.
And you have access to the Low Level client in case something you need is missing.
For example, I wrote some code here for my own needs that extend the High Level Client:
Apache, Apache Lucene, Apache Hadoop, Hadoop, HDFS and the yellow elephant
logo are trademarks of the
Apache Software Foundation
in the United States and/or other countries.