Я пытаюсь подключиться с Java к ElasticSearch, но я могу подключаться только через HTTP. Я не могу использовать TransportClient
. Существует ли оболочка Java-клиента вокруг API-интерфейсов ElasticSearch REST? Если да, то как его использовать?
Java HTTP Client для ElasticSearch
Ответ 1
Привет Существует новый проект, который соответствует вашим потребностям. Это Java-интерфейс Rest API для Elasticsearch
Проверьте это! его имя JEST
Ответ 2
Появится новый "официальный" java-клиент REST начиная с версии 5.0.0-alpha4.
Ответ 3
Мы просто открываем источник Flummi, клиент 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));
Ответ 4
Начиная с версии 5.6 Elasticearch Java SDK они предоставляют 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);