2014-09-25 41 views
1

我試圖用ElasticSearch工作與JavaElasticSearch Lucene的UnicodeUtil沒有找到

import java.util.Date; 
import java.util.HashMap; 
import java.util.Map; 

import org.elasticsearch.action.index.IndexResponse; 
import org.elasticsearch.client.Client; 
import org.elasticsearch.client.transport.TransportClient; 
import org.elasticsearch.common.transport.InetSocketTransportAddress; 


public class EST { 

public static void main(String[] args){ 

    Client client = new TransportClient() 
    .addTransportAddress(new InetSocketTransportAddress("10.154.12.180", 9200)); 

    Map<String, Object> json = new HashMap<String, Object>(); 
    json.put("user","kimchy"); 
    json.put("postDate",new Date()); 
    json.put("message","trying out Elasticsearch"); 

    IndexResponse response = client.prepareIndex("twitter", "tweet") 
      .setSource(json) 
      .execute() 
      .actionGet(); 

    client.close(); 
} 
} 

,並添加elasticssearch,Lucene的核心,的Lucene的QueryParser,lucene的分析器對常見和Lucene,演示庫和運行後我越來越NoSuchMethodException

Exception in thread "main" java.lang.NoSuchMethodError: org.apache.lucene.util.UnicodeUtil.UTF16toUTF8(Ljava/lang/CharSequence;IILorg/apache/lucene/util/BytesRef;)V 
at org.elasticsearch.common.Strings.toUTF8Bytes(Strings.java:1529) 
at org.elasticsearch.common.Strings.toUTF8Bytes(Strings.java:1525) 
at org.elasticsearch.search.facet.filter.InternalFilterFacet.<clinit>(InternalFilterFacet.java:40) 
at org.elasticsearch.search.facet.TransportFacetModule.configure(TransportFacetModule.java:39) 
at org.elasticsearch.common.inject.AbstractModule.configure(AbstractModule.java:60) 
at org.elasticsearch.common.inject.spi.Elements$RecordingBinder.install(Elements.java:204) 
at org.elasticsearch.common.inject.spi.Elements.getElements(Elements.java:85) 
at org.elasticsearch.common.inject.InjectorShell$Builder.build(InjectorShell.java:130) 
at org.elasticsearch.common.inject.InjectorBuilder.build(InjectorBuilder.java:99) 
at org.elasticsearch.common.inject.Guice.createInjector(Guice.java:93) 
at org.elasticsearch.common.inject.Guice.createInjector(Guice.java:70) 
at org.elasticsearch.common.inject.ModulesBuilder.createInjector(ModulesBuilder.java:59) 
at org.elasticsearch.client.transport.TransportClient.<init>(TransportClient.java:188) 
at org.elasticsearch.client.transport.TransportClient.<init>(TransportClient.java:118) 
at estest.EST.main(EST.java:17) 

回答

6

巧合的是,我只是遇到了這個問題,現在 - 而谷歌搜索,我發現你的問題 - 谷歌確實是驚人的快一個索引,只有6個小時。

這裏是如何解決它:(使用maven,gradle這個還是在類路徑放棄它)

版本(可能是4.10),使用的是具有

進口Lucene的核心 - 4.9.0.jar一個不同的方法簽名。然而,ES與4.9相關聯。

0

爲了避免java客戶端和ES之間的兼容性問題,最好只使用ES * .zip在bin文件夾中提供的jar。