最近用JAVA连接数据库,特别是在es上踩了很多坑,专门写一篇文章记录一下,这篇文章主要解决下面两个问题:
1.Elasticsearch数据库低级客户端Java Low Level REST Client连接es数据库
2.Elasticsearch数据库使用版本不匹配
首先来说说第一种问题。
因为想测试代码通用性,所以安装了两个es版本,一个为7.x,另一个为6.x版本。一开始我是使用高级客户端进行连接的,因为高级客户端功能比较多,后续也比较容易操作,但由于高级客户端对版本要求比较严格,所以后面选择使用兼容性更强的低级客户端RestClient。
然后就是校验问题,因为只要输入了ip地址和端口号,使用代码就可以构建客户端,所以我通过索引名来进行校验,确保自己真的连接上了es。下面直接上测试代码:
public class Test {
public static void main(String[] args) {
Test test=new Test();
test.testConn();
}
/**连接es数据库**/
public void testConn(){
//1.构建没有用户名和密码的客户端
RestClient restClient = RestClient.builder(new HttpHost("localhost", 9200, "http")).build();
//2.构建有用户名和密码的客户端
//设定用户名和密码
final CredentialsProvider crede