Я новичок в ElasticSearch, и у меня возникают проблемы при подключении к ElasticSearch. Пожалуйста, найдите ниже детали:
Плагин hq и плагин head показывают разные результаты:
Вывод плагина HQ:
Вывод плагина Head:Когда я пытаюсь подключиться из моего кода scala, я получаю следующую ошибку:
org.elasticsearch.client.transport.NoNodeAvailableException: None of the configured nodes are available: [] at org.elasticsearch.client.transport.TransportClientNodesService.ensureNodesAreAvailable(TransportClientNodesService.java:305) at org.elasticsearch.client.transport.TransportClientNodesService.execute(TransportClientNodesService.java:200) at org.elasticsearch.client.transport.support.InternalTransportClient.execute(InternalTransportClient.java:106) at org.elasticsearch.client.support.AbstractClient.index(AbstractClient.java:102) at org.elasticsearch.client.transport.TransportClient.index(TransportClient.java:340) at com.sksamuel.elastic4s.IndexDsl$IndexDefinitionExecutable$$anonfun$apply$1.apply(IndexDsl.scala:23) at com.sksamuel.elastic4s.IndexDsl$IndexDefinitionExecutable$$anonfun$apply$1.apply(IndexDsl.scala:23) at com.sksamuel.elastic4s.Executable$class.injectFuture(Executable.scala:21) at com.sksamuel.elastic4s.IndexDsl$IndexDefinitionExecutable$.injectFuture(IndexDsl.scala:20) at com.sksamuel.elastic4s.IndexDsl$IndexDefinitionExecutable$.apply(IndexDsl.scala:23) at com.sksamuel.elastic4s.IndexDsl$IndexDefinitionExecutable$.apply(IndexDsl.scala:20) at com.sksamuel.elastic4s.ElasticClient.execute(ElasticClient.scala:28)
Вот мой код, который я использую для подключения:
val settings = ImmutableSettings.settingsBuilder()
.put("cluster.name", "elasticsearch")
.build()
val client = ElasticClient.remote(settings, ElasticsearchClientUri("elasticsearch://10.50.xxx.xxx:9300"))
Я также проверил свое соединение и могу успешно подключиться по telnet 10.50.xxx.xxx к портам 9200 и 9300.
Я где-то читал, что проблема может быть с
http.cors
, поэтому я добавил следующие строки в файл/etc/elasticsearch/elasticsearch.yml
на сервере:http.cors.allow-origin: "/.*/" http.cors.enabled: true
Подскажите пожалуйста, что я делаю не так?
-- Обновление --
Спасибо @ Evaldas Buinauskas, это была проблема с версией, я установил эластичную версию 2.0 и использовал библиотеки и плагины версии 1.7. Я понизил эластичность до версии 1.7, и все заработало!
_status
в версии 2.0, который использовался в головном плагине для определения работоспособности кластера, возможно, ваш клиент Scala тоже использует его._status
был заменен на_recovery
. - person Evaldas Buinauskas   schedule 06.11.2015