ES6.6.2 使用小结 - Java连接ES并查询数据
1.如果需要查看如何创建Maven项目,可以看这里:ES6.6.2 使用小结 - 创建Maven项目
2.先在ES(安装了head插件)创建一个Index吧,如果是单机部署ES,副本数记得写0,不然健康值会是黄色,假设这里索引名是”app_account”。
3.承接上一篇文章,这里首先是在com.bas下创建demo包,以下是完整代码:
package com.bas.demo;
import java.net.InetAddress;
import java.net.UnknownHostException;
import org.elasticsearch.action.get.GetResponse;
import org.elasticsearch.client.transport.TransportClient;
import org.elasticsearch.common.settings.Settings;
import org.elasticsearch.common.transport.TransportAddress;
import org.elasticsearch.transport.client.PreBuiltTransportClient;
/**
* 官方参考文档
* https://www.elastic.co/guide/en/elasticsearch/client/java-api/current/transport-client.html
* 连接ES测试类
*/
public class ClientDemo {
public static void main(String[] args) throws UnknownHostException {
// 设置集群名称
Settings settings = Settings.builder().put("cluster.name", "TestCluster").build();
// 创建client
TransportClient client = new PreBuiltTransportClient(settings)
.addTransportAddress(new TransportAddress(InetAddress.getByName("127.0.0.1"), 9300));
// 搜索数据
GetResponse response = client.prepareGet("app_account", "blog", "1").execute().actionGet();
// 输出结果
System.out.println(response.getSourceAsString());
// 关闭client
client.close();
}
}
3.连接查询没有结果,:
注:
1.遇到:NoNodeAvailableException: None of the configured nodes are available: [{#transport#-1}…。ES安装的端口是9200,但是程序中连接的端口要写9300,因为TCP内部传输端口 9300。
问题解决参考:https://blog.csdn.net/adsl624153/article/details/78935796
还没有评论,来说两句吧...