我在弹性搜索中使用以下Java代码尝试索引.. 我在代码中给了我的机器Ip。它无法连接到节点。 它给出了如下错误:
线程“main”中的异常org.elasticsearch.client.transport.NoNodeAvailableException:没有可用节点 at org.elasticsearch.client.transport.TransportClientNodesService.execute(TransportClientNodesService.java:219) at org.elasticsearch.client.transport.support.InternalTransportClient.execute(InternalTransportClient.java:106) at org.elasticsearch.client.support.AbstractClient.index(AbstractClient.java:82) at org.elasticsearch.client.transport.TransportClient.index(TransportClient.java:330) at org.elasticsearch.action.index.IndexRequestBuilder.doExecute(IndexRequestBuilder.java:314) 在org.elasticsearch.action.ActionRequestBuilder.execute(ActionRequestBuilder.java:85) 在org.elasticsearch.action.ActionRequestBuilder.execute(ActionRequestBuilder.java:59) 在test.test1.main(test1.java:30)
我正在使用的代码:
public static void main(String[] args) {
String json = "{" +
"\"user\":\"AMaresh\"," +
"\"postDate\":\"2014-04-23\"," +
"\"message\":\"trying out Elasticsearch\"" +
"}";
Settings settings = ImmutableSettings.settingsBuilder().put("elasticsearch", "elasticsearch").build();
TransportClient transportClient = new TransportClient(settings);
Client client = new TransportClient().addTransportAddress(new InetSocketTransportAddress("10.210.51.207",9300));
IndexResponse response = client.prepareIndex("Cricket", "cric", "1").setSource(json).execute().actionGet();
//List<String> matches = response.matches();
System.out.println(response);
System.out.println("finished");
我已检查机器中的端口已打开。
任何人都可以帮助我理解这个问题。
提前致谢
答案 0 :(得分:4)
我认为提到群集名称的问题..使用lik follow
Settings settings = ImmutableSettings.settingsBuilder()
.put("cluster.name", "elasticsearch").build();
希望它有帮助..!
答案 1 :(得分:1)
对类似问题的回答https://stackoverflow.com/a/25053586/3827220适用于您看到的错误消息。
检查以确保您在客户端和群集端使用相同的主要版本。