Java HTTP Client pour ElasticSearch

J’essaie de me connecter de Java à ElasticSearch mais je ne peux que me connecter via HTTP. Je ne peux pas utiliser le TransportClient . Existe-t-il un wrapper Java client autour des API REST ElasticSearch? Si oui, comment l’utiliser?

Bonjour, Il y a un tout nouveau projet qui correspond à vos besoins. Il repose sur l’API reposant sur Java pour Elasticsearch

Vérifiez-le! son nom JEST

Un nouveau client Java “officiel” basé sur REST sera disponible à partir de v5.0.0-alpha4.

Nous venons d’ouvrir un fichier source Flummi , un client Java HTTP / REST pour Elastic Search. Il imite le plus fidèlement possible l’API du client de transport, ce qui facilite le portage du code existant. Il fournit également un meilleur niveau d’abstraction que Jest, car il rapporte toutes les erreurs avec Exceptions. Essaie!

Exemple d’utilisation simple:

 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").getAsSsortingng()) .forEach(name -> System.out.println("Name: " + name)); 

Depuis la version 5.6 du SDK Java Elasticsearch, ils fournissent un client 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);