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