gpt4 book ai didi

java - 找不到 ElasticSearch Lucene UnicodeUtil

转载 作者:可可西里 更新时间:2023-11-01 11:07:20 24 4
gpt4 key购买 nike

我正在尝试通过 Java 使用 ElasticSearch

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-core、lucene-queryparser、lucene-analyzers-common 和 lucene-demo 库,运行后我得到了 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)

最佳答案

巧合的是,我现在刚刚遇到这个问题 - 在谷歌搜索时,我发现了你的问题 - Google 的索引速度确实快得惊人,只需 6 小时。

修复方法如下:

导入 lucene-core-4.9.0.jar(使用 maven、gradle 或将其放入您的类路径)

您使用的版本(可能是 4.10)具有不同的方法签名。然而,ES 与 4.9 相关联。

关于java - 找不到 ElasticSearch Lucene UnicodeUtil,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26033408/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com