Tôi đang cố gắng kết nối từ Java đến ElasticSearch nhưng tôi chỉ có thể kết nối qua HTTP. Tôi không thể sử dụng số TransportClient
. Có trình bao bọc ứng dụng khách Java xung quanh API REST của ElasticSearch không? Nếu vậy, làm cách nào để sử dụng?Java HTTP Client cho ElasticSearch
Trả lời
Xin chào! Có một dự án hoàn toàn mới phù hợp với nhu cầu của bạn. API dựa trên Java dựa trên Java cho Elasticsearch
Kiểm tra! tên của nó JEST
Ứng dụng java dựa trên REST "chính thức" mới will be available bắt đầu bằng v5.0.0-alpha4.
Xin lỗi vì downvote, tôi chắc chắn những gì bạn đã viết hoàn toàn hợp lệ vào năm 2012, nhưng hiện có một số triển khai mã nguồn mở. –
@BastianVoigt cảm ơn vì đã chú ý đến điều này. Tôi đã cập nhật câu trả lời của mình để phản ánh tình huống mới nhất. – imotov
thx để cập nhật –
Chúng tôi chỉ mở nguồn Flummi, một ứng dụng Java HTTP/REST cho Tìm kiếm Đàn hồi. Nó bắt chước API của khách hàng vận chuyển càng chặt chẽ càng tốt, giúp bạn dễ dàng chuyển mã hiện có. Nó cũng cung cấp một mức trừu tượng tốt hơn Jest, bởi vì nó báo cáo tất cả các lỗi với Exceptions. Hãy thử một lần!
sử dụng đơn giản ví dụ:
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));
Since version 5.6 của Elasticsearch Java SDK mà họ cung cấp một 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);
- 1. Generic Soap Client trong Java
- 2. Sử dụng máy chủ proxy công cộng trong HTTP client
- 3. SQLite cho client-server
- 4. Async http client (ning) tạo thêm chủ đề?
- 5. Kích thước lô hàng loạt java elasticsearch
- 6. HTTP Client dựa trên NodeJS: Cách xác thực yêu cầu?
- 7. Số API của Cassandra Client Java API
- 8. Java Client .class Bảo vệ tập tin
- 9. Thư viện HTTP tốt nhất cho Java?
- 10. cao cấp thư viện client HTTP cho bản C/C++ trong Win32
- 11. svn client binaries cho windows
- 12. SOAP Client cho Python 3
- 13. Elasticsearch _timestamp
- 14. Thiết lập sông MongoDB cho Elasticsearch
- 15. Giải nén phản hồi http GZIP http (sử dụng api khách hàng áo, java)
- 16. Framework cho (HTML + JS) Desktop Client
- 17. Cung cấp kho khóa cho webService client
- 18. ElasticSearch Stemming
- 19. Java git client bằng cách sử dụng jgit
- 20. Kích thước hàng đợi trong Spring AMQP Java client
- 21. Có Github GUI Client cho Linux OS không?
- 22. lib java tốt nhất cho các kết nối http?
- 23. Ứng dụng HTTP không đồng bộ cho Java
- 24. Java Async Http khách hàng so sánh
- 25. HTTP 501 cho java.lang.UnsupportedOperationException
- 26. Elasticsearch: Thêm ánh xạ thủ công bằng cách sử dụng Java
- 27. Chọn googlecalendar không mặc định với google-java-client-api
- 28. Đầu ra logstash cho Elasticsearch trên AWS EC2
- 29. Máy chủ proxy HTTP Java
- 30. Máy chủ Java HTTP không hoạt động
Tôi gặp vấn đề tương tự, tôi phải kết nối với máy chủ ES qua cổng 80. Jest trông rất đẹp, nhưng tiếc là ứng dụng mẫu Jest là cách đằng sau thư viện Jest cốt lõi. – Phy6