ElasticSearch的Java HTTP客户端

我正在尝试从Java连接到ElasticSearch,但我只能通过HTTP连接。 我无法使用TransportClient 。 ElasticSearch REST API是否有Java客户端包装器? 如果是这样,我该如何使用它?

您好有一个符合您需求的全新项目。 它基于Java的Rest API for Elasticsearch

看看这个! 它的名字是JEST

从v5.0.0-alpha4开始, 将提供一个新的“官方”基于REST的Java客户端。

我们只是开源Flummi ,一个用于Elastic Search的Java HTTP / REST客户端。 它尽可能地模仿传输客户端的API,从而可以轻松移植现有代码。 它还提供了比Jest更好的抽象级别,因为它使用Exceptions报告所有错误。 试试看!

简单用法示例:

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

从 Elasticsearch Java SDK 5.6版开始 ,它们提供了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);