获得 elasticsearch 客户端很简单。最常见方式是通过︰创建节点,作为一个群集中的节点。从你的节点请求客户端。
另一种方式是通过创建连接到集群的 TransportClient。
这个在之前的文章写到到创建连接集群的TransportClient方法。
现在主要来说创建节点的方法:
创建节点最简单的方式
Node node = nodeBuilder().node();
Client client = node.client();
node.close();
当这个节点创建的时候它便会加入一个集群,我们可以来设置让它加入制定的集群,通过设置clusterName来设置
在项目中可以通过配置文件来设置进行加载
Node node = nodeBuilder).clusterName("clustername").node();
Client client = node.client();
在创建这个节点的时候我们应该考虑这个节点是否要存储数据,很多时候我们可能只是通过这个节点去查询数据,这时候我们可以将node.date 设置成false,或者样node.clien设置成true来实现。
Node node = nodeBuilder().settings(ImmutableSettings.settingsBuilder().put("http.enabled", false)).client(true).node();
Client client = node.client();
使用transportclient 进行连接的时候,可能会有双跳现象产生。
像这样加入:
Client client = new TransportClient()
.addTransportAddress(new InetSocketTransportAddress("host1", 9300))
.addTransportAddress(new InetSocketTransportAddress("host2", 9300));
它无法加入群集,但只是获取一个或更多的最初运输地址,并在每个动作的轮循机制方式与他们交流。
或者采取setting连接的方式,参考上一篇关于elasticsearch的文章。