我已将elasticsearch-0.90.7
的弹性搜索版本更新为elasticsearch-1.3.1
,应用程序在elasticsearch-0.90.7
中工作正常,但在elasticsearch-1.3.1
中获得以下异常:
2014-07-31/12:49:22.276 [SimpleAsyncTaskExecutor-4] ERROR step.AbstractStep - Encountered an error executing the step
org.elasticsearch.client.transport.NoNodeAvailableException: No node available
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.bulk(AbstractClient.java:149)
at org.elasticsearch.client.transport.TransportClient.bulk(TransportClient.java:354)
at org.elasticsearch.action.bulk.BulkRequestBuilder.doExecute(BulkRequestBuilder.java:165)
at org.elasticsearch.action.ActionRequestBuilder.execute(ActionRequestBuilder.java:85)
at org.elasticsearch.action.ActionRequestBuilder.execute(ActionRequestBuilder.java:59)
at com.verisign.rzuingest.batch.RzuFilesIngestionTasklet.execute(Ingestion.groovy:75)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
at java.util.concurrent.FutureTask.run(FutureTask.java:262)
at java.lang.Thread.run(Thread.java:745)
我正在使用java客户端org.springframework.data:spring-data-elasticsearch:1.0.0.M1
与弹性搜索进行交互,例如:
ElasticsearchTemplate.bulkIndex(index)
如何解决此问题?
答案 0 :(得分:2)
TL; DR 同时更新spring-data-elasticsearch库
不同的主要Elasticsearch版本都有incompatible transport protocols。这样做是为了避免群集中的版本不匹配。您已将ES升级到1.3.1,但是您的弹簧数据库uses旧版本的客户端因此无法在群集中找到其他节点 - 它不知道如何正确地进行通信。
请参阅您的库文档,找到与ES 1.3.1一起使用的必要版本并使用它。