Elasticsearch Java API 配置测试

Elasticsearch1.X,2.X,5.X随着版本的迭代,除了系统升级,Java API也做了相对较大的调整,也就是说,1.X的API在2.X以及5.X乃至未来6.X版本都不是通用的。

本例子使用的版本是5.6.5

一. 首先添加maven依赖

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

二。连接方式 

Settings settings = Settings.builder().put("cluster.name", "my-application").build();  //设置集群名称
TransportClient client = new PreBuiltTransportClient(settings).addTransportAddress(new InetSocketTransportAddress(InetAddress.getByName("10.10.10.5"), 9300));

输客户端自带一个集群嗅探特性,可以动态地添加新主机并删除旧主机,当启用这个特性时,传输客户端将连接到其内部节点列表中的节点 

嗅探器开启方式:
Settings settings = Settings.builder() .put("client.transport.sniff", true).build();
TransportClient client = new PreBuiltTransportClient(settings);

其他transport client的设置包括:
client.transport.ignore_cluster_name :设置为true 可以忽略节点连接时对集群名字的校验
client.transport.ping_timeout :设置一个节点在得到response时的等待时间,默认5秒
client.transport.nodes_sampler_interval:多久进行获取/ping 列出的节点并且连接,默认5秒

三。查看集群信息 

        List<DiscoveryNode> nodes = client.connectedNodes();
        for (DiscoveryNode node : nodes) {
            System.out.println(node.getHostAddress());
            System.out.println(node.getName());
            System.out.println(node.getVersion());
        }
原文地址:https://www.cnblogs.com/zsg88/p/8323902.html