我正在尝试从 Java 连接到 ElasticSearch,但我只能通过 HTTP 连接。我无法使用TransportClient
. 是否有围绕 ElasticSearch REST API 的 Java 客户端包装器?如果是这样,我该如何使用它?
问问题
19233 次
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 回答