web-dev-qa-db-ja.com

Java ElasticSearch用のHTTPクライアント

JavaからElasticSearchに接続しようとしていますが、HTTP経由でしか接続できません。TransportClientを使用できません。Java ElasticSearchのクライアントラッパーREST API?もしそうなら、どのように使用しますか?

23
James Ward

こんにちはあなたのニーズにぴったり合った真新しいプロジェクトがあります。 JavaベースのElasticsearch用RestAPI

見てみな!その名前 [〜#〜] jest [〜#〜]

22
dogukan sonmez

新しい「公式」RESTベースのJavaクライアント 利用可能になります v5.0.0-alpha4以降。

9
imotov

オープンソースの Flummi 、a Java ElasticSearch用の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));
4
Bastian Voigt

バージョン5.6以降 Elasticsearch Java SDKは、 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);
2
H6.