es与java交互的jar包_Java与ElasticSearch的交互操作

Java与ElasticSearch的交互操作

节点客户端(Node client)

节点客户端作为一个非数据节点加入到本地集群中。换句话说,它本身不保存任何数据,但是它知道数据在集群中的哪个节点中,并且可以把请求转发到正确的节点。

传输客户端(Transport client)

轻量级的传输客户端可以将请求发送到远程集群。它本身不加入集群,但是它可以将请求转发到集群中的一个节点上。

本文使用Jest工具,Jest是一种Restful的传输客户端,通过9300端口和ElasticSearch通信,可以动态添加和删除节点。

注意:客户端必须具有与集群中的节点相同的主版本号(例如2.x或5.x)。 客户端可以连接到具有不同小版本(例如2.3.x)的群集,但是可能不支持新的功能。 理想情况下,客户端应具有与群集相同的版本。

使用JestClientFactory工厂类初始化JestClient实例

/**

* 初始化JestClient实例

*/

private static JestClient initClient(String server) {

JestClientFactory factory = new JestClientFactory();

//可以批量创建使用,分隔的ElasticSearch客户端

List esServerList = Arrays.asList(server.split(","));

HttpClientConfig clientConfig = new HttpClientConfig.Builder(esServerList)

.multiThreaded(true)

.readTimeout( 30 * 1000)

.defaultCredentials("admin","xiaoadmin")

.maxTotalConnection(5)

//.discoveryEnabled(true)// 启用自动发现 Enabling node discovery will (poll) and update the list of servers in the client periodically.

//.discoveryFrequency(5L, TimeUnit.HOURS)// 5秒轮询一次

.build();

//创建客户对象

factory.setHttpClientConfig(clientConfig);

return factory.getObject();

}

对应的配置文件示例

#Elasticsearch

#Elasticsearch服务器地址

demo.index.server=http://es-test-head.demo.com

#索引分片数

demo.index.shards=5

#复制分片数

demo.index.replicas=1

#索引和类型名称

demo.index.name=demo-index

demo.index.type=demo-type

初始化ES客户端后,可以获取对应的客户端对象进行操作

/**

*创建JestClient实例

*/

public static JestClient getJestClient(String server) {

JestClient jestClient = jestClientMap.get(server);

if (jestClient == null) {

jestClient = initClient(server);

jestClientMap.put(server, jestClient);

}

return jestClient;

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值