24

I'm trying to connect from Java to ElasticSearch but I can only connect over HTTP. I can't use the TransportClient. Is there a Java client wrapper around the ElasticSearch REST APIs? If so, how do I use it?

4 Answers 4

23

Hi There is a brand new project just matching your needs. It Java based Rest API for Elasticsearch

Check it out! its name JEST

Sign up to request clarification or add additional context in comments.

1 Comment

I have the same issue, I have to be able to connect to a ES server over port 80 only. Jest looks nice, but unfortunately the Jest sample application is way behind the core Jest library.
9

A new "official" REST-based java client will be available starting with v5.0.0-alpha4.

Comments

5

We just open sourced Flummi, a Java HTTP/REST client for Elastic Search. It imitates the transport client's API as closely as possible, making it easy to port existing code. It also provides a better abstraction level than Jest, because it reports all the errors with Exceptions. Give it a try!

Simple usage example:

Flummi flummi = new Flummi("http://elasticsearch.base.url:9200");

SearchResponse searchResponse = flummi
   .prepareSearch("products")
   .setQuery(
      QueryBuilders.termQuery("color", "yellow").build()
    )
   .execute();

System.out.println("Found " 
   + searchResponse.getHits().getTotalHits()
   + " products");
searchResponse.getHits()
  .stream().map(hit -> hit.getSource().get("name").getAsString())
  .forEach(name -> System.out.println("Name: " + name));

Comments

3

Since version 5.6 of the Elasticsearch Java SDK they provide a Java REST Client.

 RestClient restClient = RestClient.builder(
    new HttpHost("localhost", 9200, "http"),
    new HttpHost("localhost", 9201, "http")).build();

 // for the RestHighLevelClient
 RestHighLevelClient client =
    new RestHighLevelClient(restClient);

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.