我正在尝试从Java连接到ElasticSearch,但是我只能通过HTTP连接。 我无法使用TransportClient
。 是否有一个Java客户端包装器可用于ElasticSearch REST API? 如果有,如何使用它?
我正在尝试从Java连接到ElasticSearch,但是我只能通过HTTP连接。 我无法使用TransportClient
。 是否有一个Java客户端包装器可用于ElasticSearch REST API? 如果有,如何使用它?
你好,有一个全新的项目完全符合您的需求。它是基于Java的针对Elasticsearch的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));
自 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);