声明:本站文章均为作者个人原创,图片均为实际截图。如有需要请收藏网站,禁止转载,谢谢配合!!!

ES提供了两种java的API对数据进行ES集群操作:TransportClient,Java REST Client。但是有以下几点需要注意:

  • 计划在7中删除TransportClient客户端,并在8中完全删除它。
  • Java REST Client客户端目前支持更常用的API,但仍有很多需要添加的API。
  • 任何缺失的API都可以通过使用JSON请求和响应体的低级Java REST客户端来实现。
  • TransportClient即将过时,虽然RestHighLevelClient还不完善,还需要增加新API,但是RestLowLevelClient非常完善,满足我们的API需求。因此本文主要介绍如何使用Java REST Client,以及Low Level REST Client和High Level REST Client的使用。

High Level 与Low Level REST Client
Java REST客户端有两种风格:

  • Java低级别REST客户端(Java Low Level REST Client):Elasticsearch的官方low-level客户端。 它允许通过http与Elasticsearch集群进行通信。 不会对请求进行编码和响应解码。 它与所有Elasticsearch版本兼容。
  • Java高级REST客户端(Java High Level REST Client):Elasticsearch的官方high-level客户端。 基于low-level客户端,它公开了API特定的方法,并负责处理。
  • Java High Level REST Client
    Java高级别REST客户端(The Java High Level REST Client),内部仍然是基于低级客户端。它提供了更多的API,接受请求对象作为参数并返回响应对象,由客户端自己处理编码和解码。每个API都可以同步或异步调用。 同步方法返回一个响应对象,而异步方法的名称以async后缀结尾,需要一个监听器参数,一旦收到响应或错误,就会被通知(由低级客户端管理的线程池)。高级客户端依赖于Elasticsearch core项目。 它接受与TransportClient相同的请求参数并返回相同的响应对象。