JAVA HTTP-клиент для ElasticSearch

Я пытаюсь подключиться с Java к ElasticSearch, но я могу подключиться только по HTTP. Я не могу использовать TransportClient. Существует ли оболочка клиента Java вокруг API REST ElasticSearch? Если да, то как мне его использовать?

4 ответов


Привет есть новый проект, просто соответствующий вашим потребностям. Это Java на основе REST API для Elasticsearch

зацените! его имя шутка


новый "официальный" клиент JAVA на основе REST будут доступны начиная с v5.0.0-alpha4.


мы просто с открытым исходным кодом Flummi, клиент JAVA HTTP / REST для эластичного поиска. Он максимально точно имитирует API транспортного клиента,что упрощает перенос существующего кода. Он также обеспечивает лучший уровень абстракции, чем Jest, потому что он сообщает обо всех ошибках с исключениями. Попробуйте!

простой пример использования:

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));

начиная с версии 5.6 из Elasticsearch Java SDK они предоставляют клиент JAVA REST.

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

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