ElasticSearch 5.X以上版本创建client连接
网上很多资料,但是并不全面,再次写下作为成长的记录
首先第一步pom文件中添加es相关依赖包,如果包加载不出来可以去maven仓库删除lastupdate结尾文件,从新下载
/**5.x以上的版本需要使用该依赖才可以创建连接*/
<dependency>
<groupId>org.elasticsearch.client</groupId>
<artifactId>transport</artifactId>
<version>5.2.2</version>
</dependency>
<dependency>
<groupId>org.elasticsearch</groupId>
<artifactId>elasticsearch</artifactId>
<version>5.2.2</version>
</dependency>
/**依赖log4j包*/
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-core</artifactId>
</dependency>
创建连接类文件ESTransportClient,此处如果使用的是单点,只需要配置一个ip就可以,如果使用集群方式,则需要开启自动嗅探整个集群的配置,写入主节点连接IP就可以自动访问到辅节点
public class ESTransportClient {
private static TransportClient client;
public static TransportClient getInstance() {
return client;
}
private ESTransportClient() {
}
static {
// 通过setting对象指定集群配置信息, 配置的集群名
Settings settings = Settings.builder().put("cluster.name", "es-cluster") // 设置ES实例的名称
.put("client.transport.sniff", true) // 自动嗅探整个集群的状态,把集群中其他ES节点的ip添加到本地的客户端列表中
.build();
client = new PreBuiltTransportClient(settings);
client.addTransportAddress(new InetSocketTransportAddress(new InetSocketAddress(ip, 9300)));
}
}
在需要使用的类文件上方添加连接声明即可
private static TransportClient client = ESTransportClient.getInstance();