I recently attended an Elasticsearch Developers course and understand that the Java API will be dropped in the near future and the Java REST client is the way to go.
No, this has nothing to do with other clients like JavaScript API or the .NET API. Also, the new high level rest client will only be the java rest client that will be developed as part of the Elasticsearch project, but there are already other java rest clients out there (like the popular Jest client) that you can use. However, we hope that over time users will use the new Elasticsearch Java rest and that by further development and contributions by the community we can make it the best maintained client for Java users.
"As soon as the REST client is feature complete and is mature enough to replace the Java API entirely, we will deprecate and finally remove the transport client and the Java API."
Is this still true? Are you still planning to remove the transport client in the long term?
the high level client will only be released with 6.0.0-beta1. The reason its already in the alpha2 docs is because we build them directly out of the master branch. There is a short note at the top of https://www.elastic.co/guide/en/elasticsearch/client/java-rest/master/java-rest-high.html which is supposed as a hint for that, but I understand it can be confusing.
I'm afraid, until either ES 5.6 or 6.0.0-beta1 you will be release you will need to build the jar yourself using the respective 5.6 or master branch of the source code.
No, the High-Level client currently depends on a fixed version of ES (>5.6), mainly to use the same query, aggs builders etc... that the current transport client uses to make the transition there easy (Compatibility | Java REST Client [6.0] | Elastic)
T[quote="khatkarrohit, post:11, topic:93233"]
AWS uses older version so I will not be able to High Level Rest Client. AWS is still at 5.3 only
[/quote]
That depends, I would give it a try. After all, you would run the HL client in your application, and it talks via REST with the cluster. So if the cluster is 5.3, you are running e.g. 5.6 in your client app you should be fine. Changes in the REST Api shouldn't happen in minor versions. I don't know if there are other considerations but if you can I'd try it out.
@cbuescher I will give it a try once it is released in Maven repo.
Low level rest client is compatible with all versions and High level rest client uses Low level internally. So high level rest client should be fine with older version that work with Low level rest 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.