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:文档