Elasticsearch搜索引擎第十四篇-Java客户端调用

ES支持多种编程语言客户端

Elasticsearch支持多种编程语言客户端,如下:
在这里插入图片描述
官网地址:https://www.elastic.co/guide/en/elasticsearch/client/index.html

ES 提供的客户端连接方式

  • REST API,端口9200
  • Transport连接,端口9300

Java REST Client

ES提供两个Java REST Client版本

  • Java Low Level REST Client(少用): 低级别的REST客户端,通过http与集群交互,用户需自己编组请求JSON串,及解析响应JSON串。兼容所有ES版本。
  • Java High Level REST Client(常用): 高级别的REST客户端,基于低级别的REST客户端,增加了编组请求、解析响应等相关api。

Java Low Level REST Client

因为低级别的REST客户端用的比较少,这里不展开说明,可以直接参考官网说明。

特点、maven引入、使用介绍参考:
https://www.elastic.co/guide/en/elasticsearch/client/java-rest/current/java-rest-low.html

API doc请参考:
https://artifacts.elastic.co/javadoc/org/elasticsearch/client/elasticsearch-rest-client/6.2.4/index.html

Java High Level REST Client(常用)

从6.0.0开始加入的,目的是以java面向对象的方式来进行请求、响应处理。

每个API 支持 同步/异步 两种方式,同步方法直接返回一个结果对象。异步的方法以 async 为后缀,通过listener 参数来通知结果。

高级java REST 客户端依赖Elasticsearch core project

兼容性说明:

  • 依赖 java1.8 和 Elasticsearch core project
  • 请使用与服务端ES版本一致的客户端版本,否则会出错!!!

maven中引入:

<dependency>
    <groupId>org.elasticsearch.client</groupId>
    <artifactId>elasticsearch-rest-high-level-client</artifactId>
    <version>6.4.3</version>
</dependency>

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及使用实例,参考官网:
https://www.elastic.co/guide/en/elasticsearch/client/java-rest/6.4/java-rest-high-supported-apis.html

Java Client

java client 使用 TransportClient,各种操作本质上都是异步的(可以用 listener,或返回 Future )。

注意:ES的发展规划中在7.0版本开始将废弃 TransportClient,8.0版本中将完全移除 TransportClient,取而代之的是High Level REST Client。

High Level REST Client 中的操作API和java client 大多是一样的。

官方学习链接:https://www.elastic.co/guide/en/elasticsearch/client/java-api/current/index.html

maven中引入:

<dependency>
    <groupId>org.elasticsearch.client</groupId>
    <artifactId>transport</artifactId>
    <version>6.4.3</version>
</dependency>

初始化客户端:

//连接集群设置
Settings settings = Settings.builder()
        .put("cluster.name", "myClusterName").build();
		
//连接的transport地址,注意端口为9300
TransportClient client = new PreBuiltTransportClient(settings)
        .addTransportAddress(new TransportAddress(InetAddress.getByName("host1"), 9300))
        .addTransportAddress(new TransportAddress(InetAddress.getByName("host2"), 9300));

//在关闭时记得关闭客户端对象
client.close();

其他API操作可以直接参考官网,官网资料非常齐全

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值