我試圖從Java連接到ElasticSearch,但我只能通過HTTP進行連接。我不能使用TransportClient
。 ElasticSearch REST API是否有Java客戶端封裝?如果是這樣,我該如何使用它?用於ElasticSearch的Java HTTP客戶端
回答
嗨有一個全新的項目只是滿足您的需求。它基於Java的Rest API Elasticsearch
看看吧!它的名字JEST
一個新的「官方」基於REST的Java客戶端will be available從v5.0.0-alpha4開始。
對不起,我相信你寫的東西在2012年完全有效,但現在有幾個開源實現。 –
@BastianVoigt感謝您的關注。我已經更新了我的答案以反映最新情況。 – imotov
thx更新 –
我們剛剛開源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的Since version 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);
- 1. Elasticsearch傳輸客戶端Java客戶端
- 2. Java Elasticsearch客戶端結構
- 3. 使用HTTP客戶端的Java 4.5客戶端獲取語句
- 4. JAVA HTTP客戶端和Serlvlet
- 5. 使用的Mockito用於HTTP客戶端
- 6. java客戶端中的elasticsearch geohash構面
- 7. 與java api客戶端的elasticsearch認證
- 8. Elasticsearch:構建Java客戶端的映射
- 9. ElasticSearch Java API:創建客戶端
- 10. 如何模擬Elasticsearch Java客戶端?
- 11. Java Spring作爲基於Akka的REST HTTP調用的客戶端
- 12. 用於爬網的無頭Java HTTP客戶端?
- 13. Akka HTTP客戶端akka-http akka-http-jackson
- 14. Java中的HTTP客戶端連接
- 15. elasticsearch亮點的Java API客戶端 - 當從elasticsearch
- 16. RESTful客戶端Verses正常HTTP客戶端對於Android?
- 17. 關於recv上的http客戶端()
- 18. apache http客戶端
- 19. 用於Java的SIP客戶端
- 20. 用於MS Graph API的Java客戶端
- 21. 用於Java客戶端的WCF服務
- 22. 用於WebApi的Java客戶端
- 23. 用於WebSphere MQ的SSL Java客戶端
- 24. 用於Java的JMX監視客戶端
- 25. 用於HTTPS上WCF的Java客戶端
- 26. Elasticsearch PHP客戶端 - 錯誤
- 27. AWS ElasticSearch客戶端SDK
- 28. Elasticsearch NEST客戶端庫
- 29. 在HTTP客戶端
- 30. 支持Pipelining的基於Java的HTTP客戶端
我有同樣的問題,我必須能夠通過端口80連接到ES服務器。 Jest看起來不錯,但不幸的是,Jest示例應用程序已經落後於核心Jest庫。 – Phy6