24

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

4

4 回答 4

23

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

看看这个!它的名字JEST

于 2012-09-25T14:18:22.280 回答
9

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

于 2012-05-04T01:55:01.423 回答
5

我们刚刚开源了Flummi,这是一个用于 Elastic Search 的 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));
于 2016-07-06T07:38:51.260 回答
3

从 Elasticsearch Java SDK 5.6 版开始,它们提供了一个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);
于 2017-10-18T12:30:27.533 回答