相关环境:jdk1.8、es5.3、eclipse&maven
jar包版本
<dependency>
<groupId>org.elasticsearch.client</groupId>
<artifactId>transport</artifactId>
<version>5.1.1</version>
</dependency>
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>1.2.47</version>
</dependency>
获取ES client
package com.yb.es;
import java.net.InetAddress;
import java.net.UnknownHostException;
import org.elasticsearch.client.Client;
import org.elasticsearch.common.settings.Settings;
import org.elasticsearch.common.transport.InetSocketTransportAddress;
import org.elasticsearch.transport.client.PreBuiltTransportClient;
public class ESUtils {
public static void main(String[] args) {
getClient();
}
public static Client client = null;
public static Client getClient() {
if (client != null) {
return client;
}
client = getSpecifiedClient("elasticsearch@127.0.0.1");
return client;
}
private static Client getSpecifiedClient(String clientNameStr) {
if (clientNameStr == null) {
return null;
}
String[] ss = clientNameStr.split("@");
int port = 9300;
try {
Settings settings = Settings.builder().put("cluster.name", ss[0]).put("client.transport.sniff", true)
.build();
client = new PreBuiltTransportClient(settings)
.addTransportAddress(new InetSocketTransportAddress(InetAddress.getByName(ss[1]), port));
} catch (UnknownHostException e) {
e.printStackTrace();
}
return client;
}
}
相关异常
NodeDisconnectedException:客户端和服务端es版本不一致,修改jar包版本匹配服务端es即可