2017-05-23 3 views
0

私はElastic Searchの文書にしたがって、Java Apiを使用してデータを取得して投稿しようとしています。しかし、私は絶えずエラーが出ています。Java APIを使用して弾性検索にアクセス

これは私が今のところ試したコードです。私はkibanaでのdevのツールを使用する場合、私はそれを見ることができるよう

Settings settings = Settings.builder().put("twitter", "tweet").build(); 
TransportClient client = new PreBuiltTransportClient(settings) 
       .addTransportAddress(new InetSocketTransportAddress(InetAddress.getByName("host1"), 9300)) 
       .addTransportAddress(new InetSocketTransportAddress(InetAddress.getByName("host2"), 9300)); 

GetResponse response = client.prepareGet("twitter", "tweet", "1").get(); 

Exception in thread "main" java.lang.NoClassDefFoundError: com/google/common/collect/ImmutableSortedMap at com.c1x.entity.Test.main(Test.java:20) Caused by: java.lang.ClassNotFoundException: com.google.common.collect.ImmutableSortedMap at java.net.URLClassLoader.findClass(URLClassLoader.java:381) at java.lang.ClassLoader.loadClass(ClassLoader.java:424) at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:335) at java.lang.ClassLoader.loadClass(ClassLoader.java:357) ... 1 more

iは弾性検索に新しいです、助けてくださいスタックトレースは、データが弾性検索中に存在している

Luceneのジャー

を追加した後、Googleのコモンズ

Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/lucene/util/SetOnce 
    at org.elasticsearch.common.settings.Settings$Builder.<init>(Settings.java:676) 
    at org.elasticsearch.common.settings.Settings$Builder.<clinit>(Settings.java:671) 
    at org.elasticsearch.common.settings.Settings.<clinit>(Settings.java:84) 
    at com.c1x.entity.Test.main(Test.java:20) 
Caused by: java.lang.ClassNotFoundException: org.apache.lucene.util.SetOnce 
    at java.net.URLClassLoader.findClass(URLClassLoader.java:381) 
    at java.lang.ClassLoader.loadClass(ClassLoader.java:424) 
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:335) 
    at java.lang.ClassLoader.loadClass(ClassLoader.java:357) 
    ... 4 more 

を追加した後

Exception in thread "main" java.lang.NoSuchMethodError: com.google.common.collect.ImmutableSet.of(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;[Ljava/lang/Object;)Lcom/google/common/collect/ImmutableSet; 
    at org.elasticsearch.common.Strings.<clinit>(Strings.java:459) 
    at org.elasticsearch.common.settings.Settings.<init>(Settings.java:90) 
    at org.elasticsearch.common.settings.Settings$Builder.build(Settings.java:1215) 
    at com.c1x.entity.Test.main(Test.java:21) 

別のエラー

Exception in thread "main" java.lang.VerifyError: class org.elasticsearch.transport.Netty3Plugin overrides final method onModule.(Lorg/elasticsearch/common/network/NetworkModule;)V 
    at java.lang.ClassLoader.defineClass1(Native Method) 
    at java.lang.ClassLoader.defineClass(ClassLoader.java:763) 
    at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142) 
    at java.net.URLClassLoader.defineClass(URLClassLoader.java:467) 
    at java.net.URLClassLoader.access$100(URLClassLoader.java:73) 
    at java.net.URLClassLoader$1.run(URLClassLoader.java:368) 
    at java.net.URLClassLoader$1.run(URLClassLoader.java:362) 
    at java.security.AccessController.doPrivileged(Native Method) 
    at java.net.URLClassLoader.findClass(URLClassLoader.java:361) 
    at java.lang.ClassLoader.loadClass(ClassLoader.java:424) 
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:335) 
    at java.lang.ClassLoader.loadClass(ClassLoader.java:357) 
    at org.elasticsearch.transport.client.PreBuiltTransportClient.<clinit>(PreBuiltTransportClient.java:84) 
    at com.c1x.entity.Test.main(Test.java:22) 

答えて

1

あなたのクラスパスにgoogle-collections.jarを欠場。それを追加すると、エラーは消えてしまいます。

あなたのpom.xmlにfollwing行を追加し、依存関係管理ツールとしてMavenを使用している場合:

<dependency> 
    <groupId>com.google.collections</groupId> 
    <artifactId>google-collections</artifactId> 
    <version>1.0</version> 
</dependency> 

次ジャーはlucene-core-<version>.jar

Mavenの依存関係を追加不足しています:

<dependency> 
    <groupId>org.apache.lucene</groupId> 
    <artifactId>lucene-core</artifactId> 
    <version>6.5.1</version> 
</dependency> 
+0

もう一度あなたを気にしてすみません@ジェンズ、私は再び弾力的な検索に新しいですコードのいくつかの問題は、更新された質問を確認してください。 – INFOSYS

+0

@INFOSYS 'elasticsearch'と' google-collections'の互換性のないバージョンのように見える – Jens

+0

弾性検索verisonが5.4.0で、Googleのコレクションがあなたと同じであることを確認するには – INFOSYS

関連する問題