本文共 1898 字,大约阅读时间需要 6 分钟。
Elasticsearch支持多种编程语言客户端,如下:
官网地址:ES提供两个Java REST Client版本
- Java Low Level REST Client(少用): 低级别的REST客户端,通过http与集群交互,用户需自己编组请求JSON串,及解析响应JSON串。兼容所有ES版本。
- Java High Level REST Client(常用): 高级别的REST客户端,基于低级别的REST客户端,增加了编组请求、解析响应等相关api。
因为低级别的REST客户端用的比较少,这里不展开说明,可以直接参考官网说明。
特点、maven引入、使用介绍参考:
API doc请参考:
从6.0.0开始加入的,目的是以java面向对象的方式来进行请求、响应处理。
每个API 支持 同步/异步 两种方式,同步方法直接返回一个结果对象。异步的方法以 async 为后缀,通过listener 参数来通知结果。
高级java REST 客户端依赖Elasticsearch core project
兼容性说明:
- 依赖 java1.8 和 Elasticsearch core project
- 请使用与服务端ES版本一致的客户端版本,否则会出错!!!
maven中引入:
org.elasticsearch.client elasticsearch-rest-high-level-client 6.4.3
Java High Level REST Client 初始化
//给定集群的多个节点地址,将客户端负载均衡地向这个节点地址集发请求RestHighLevelClient client = new RestHighLevelClient( RestClient.builder( new HttpHost("localhost", 9200, "http"), new HttpHost("localhost", 9201, "http")));
client不再使用的话,要关闭:
client.close();
API及使用实例,参考官网:
java client 使用 TransportClient,各种操作本质上都是异步的(可以用 listener,或返回 Future )。
注意:ES的发展规划中在7.0版本开始将废弃 TransportClient,8.0版本中将完全移除 TransportClient,取而代之的是High Level REST Client。
High Level REST Client 中的操作API和java client 大多是一样的。
官方学习链接:
maven中引入:
org.elasticsearch.client transport 6.4.3
初始化客户端:
//连接集群设置Settings settings = Settings.builder() .put("cluster.name", "myClusterName").build(); //连接的transport地址,注意端口为9300TransportClient client = new PreBuiltTransportClient(settings) .addTransportAddress(new TransportAddress(InetAddress.getByName("host1"), 9300)) .addTransportAddress(new TransportAddress(InetAddress.getByName("host2"), 9300));//在关闭时记得关闭客户端对象client.close();
其他API操作可以直接参考官网,官网资料非常齐全
转载地址:http://ywpxi.baihongyu.com/