JavaからElasticSearchに接続しようとしていますが、HTTP経由でしか接続できません。TransportClient
を使用できません。Java ElasticSearchのクライアントラッパーREST API?もしそうなら、どのように使用しますか?
こんにちはあなたのニーズにぴったり合った真新しいプロジェクトがあります。 JavaベースのElasticsearch用RestAPI
見てみな!その名前 [〜#〜] jest [〜#〜]
新しい「公式」RESTベースのJavaクライアント 利用可能になります v5.0.0-alpha4以降。
オープンソースの 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));
バージョン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);