Java REST Client有兩種類型:segmentfault
Java Low Level REST Client:用於Elasticsearch的官方低級別客戶端,它容許經過http
與Elasticsearch集羣通訊,將請求編組和響應反編組留給用戶,它與全部Elasticsearch版本兼容。負載均衡
Java High Level REST Client:用於Elasticsearch的官方高級別客戶端,基於低級別客戶端,它公開API特定的方法,並負責請求編組和響應反編組。異步
低級別客戶端的特性包括:最小的依賴關係;跨全部可用節點負載均衡;在節點故障的狀況下根據特定的響應碼進行故障轉移;失敗的鏈接懲罰(失敗的節點是否被重試取決於它連續失敗了多少次,失敗的嘗試越多,客戶端在再次嘗試同一節點以前等待的時間就越長);持久鏈接;跟蹤請求和響應的日誌記錄;可選的自動發現集羣節點。async
在6.0.0-beta1中被添加。
Java High Level REST Client在Java Low Level REST客戶端之上工做,它的主要目標是公開API特定的方法,這些方法接受請求對象做爲參數並返回響應對象,以便由客戶端本身處理請求編組和響應反編組。線程
每一個API能夠同步調用,也能夠異步調用。同步方法返回響應對象,而名稱以async
後綴結尾的異步方法則須要一個監聽器參數,一旦接收到響應或錯誤,監聽器就會被通知(在由低級別客戶端管理的線程池中)。日誌
Java High Level REST Client依賴於Elasticsearch核心項目,它接受與TransportClient
相同的請求參數,並返回相同的響應對象。code
Java High Level REST Clien支持如下文檔API:對象
Java High Level REST Client支持如下搜索API:文檔