2016-05-06 3 views
0

ローカルのバージョンのelasticsearchに接続する際に問題が発生しています。私は、次のelastic4s org.elasticsearch.client.transport.NoNodeAvailableException:

val uri = ElasticsearchClientUri("elasticsearch://127.0.0.1:9300") 
val client = ElasticClient.remote(uri) 
lient execute { search in "_all" query "test" } 

しかし

org.elasticsearch.client.transport.NoNodeAvailableException: None of the configured nodes are available: [] 

例外を取得しやっています。私が9200/9300の間を行くかどうかは関係ありません。私が見る限り、ESは正しく動作しています。任意のポインタが高く評価されました。

+0

こんにちはスティーブ、あなたがこのリンクをチェックすることができます/ elastic4sそれがあなたに役立つかどうかを見てください。 –

+0

どのようにローカルアドレスでリモートを使用していますか?基本的なGETリクエストでローカルインスタンスを9200に設定して応答することができますか? – Barry

+0

'' 'val client = ElasticClient.local'''でローカルインスタンスに接続できました – Barry

答えて

0

このためのいくつかの可能な理由があります。

  • クライアントとサーバーのバージョンが異なる
  • クラスタ名を指定することができますが、ホストをaccesing時にネットワークに問題がある可能性があり
  • 異なる場合がありますポート。
0

ローカルのElasticSearchインスタンスで、elasticsearch.ymlでcluster.nameを変更しましたか?その場合は、Settingsオブジェクトを作成する必要があります。

val settings = Settings.settingsBuilder().put("cluster.name", "cluster_name").build() // set cluster_name to cluster.name from your elasticsearch.yml 
val uri = ElasticsearchClientUri("elasticsearch://127.0.0.1:9300") 
client = ElasticClient.remote(settings, uri) 
-1

scalaを使用してelasticsearch 2.4.0トランスポートクライアントを作成するにはどうすればよいですか?

import com.sksamuel.elastic4s.ElasticDsl._ 
import com.sksamuel.elastic4s.{ElasticsearchClientUri, ElasticClient} 
import org.elasticsearch.common.settings.Settings  
object Facebook { 
     def main(args: Array[String]) { 


    val settings = Settings.builder().put("cluster.name", "myClusterName").build() 
    val client = ElasticClient.transport(settings, ElasticsearchClientUri("elasticsearch://localhost:9300")) 
      client.execute { createIndex("places") shards 3 replicas 2 } 
     } 
    } 

ScalaのMavenの依存関係:

<dependency> 
     <groupId>com.sksamuel.elastic4s</groupId> 
     <artifactId>elastic4s-core_2.11</artifactId> 
     <version>2.4.0</version> 
    </dependency> 

    <dependency> 
     <groupId>com.sksamuel.elastic4s</groupId> 
     <artifactId>elastic4s-tcp_2.11</artifactId> 
     <version>5.2.1</version> 
    </dependency> 
    <dependency> 
     <groupId>org.elasticsearch</groupId> 
     <artifactId>elasticsearch</artifactId> 
     <version>2.4.0</version> 
    </dependency> 

出力結果:https://github.com/sksamuel:

log4j:WARN No appenders could be found for logger (org.elasticsearch.plugins). 
    log4j:WARN Please initialize the log4j system properly. 
    log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info. 
    Exception in thread "main" java.lang.NoSuchFieldError: LUCENE_4_0_0 
     at org.elasticsearch.Version.<clinit>(Version.java:44) 
     at org.elasticsearch.client.transport.TransportClient$Builder.build(TransportClient.java:129) 
     at com.sksamuel.elastic4s.ElasticClient$.transport(ElasticClient.scala:112) 
     at example.Facebook$.main(Facebook.scala:23) 
     at example.Facebook.main(Facebook.scala) 
関連する問題