首页 > 解决方案 > 使用 ElasticSearch 和 Lucene 在线程“main”java.lang.NoSuchFieldError 中获取异常:LUCENE_7_2_1

问题描述

我正在使用以下依赖项-

<dependency>
            <groupId>org.apache.lucene</groupId>
            <artifactId>lucene-core</artifactId>
            <version>7.2.0</version>
        </dependency>
        <dependency>
            <groupId>org.apache.lucene</groupId>
            <artifactId>lucene-join</artifactId>
            <version>7.1.0</version>
        </dependency>
        <dependency>
            <groupId>org.elasticsearch</groupId>
            <artifactId>elasticsearch</artifactId>
            <version>6.2.3</version>
        </dependency>
        <dependency>
            <groupId>org.elasticsearch.client</groupId>
            <artifactId>elasticsearch-rest-client</artifactId>
            <version>6.2.3</version>
          </dependency>

获取异常为

Exception in thread "main" java.lang.NoSuchFieldError: LUCENE_7_2_1
at org.elasticsearch.Version.<clinit>(Version.java:152)
at org.elasticsearch.common.logging.DeprecationLogger.<clinit>(DeprecationLogger.java:159)
at org.elasticsearch.common.ParseField.<clinit>(ParseField.java:35)
at org.elasticsearch.client.RestHighLevelClient.lambda$getDefaultNamedXContents$47(RestHighLevelClient.java:673)
at java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:193)
at java.util.HashMap$EntrySpliterator.forEachRemaining(HashMap.java:1691)
at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:481)
at java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:471)
at java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:708)
at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
at java.util.stream.ReferencePipeline.collect(ReferencePipeline.java:499)
at org.elasticsearch.client.RestHighLevelClient.getDefaultNamedXContents(RestHighLevelClient.java:674)
at org.elasticsearch.client.RestHighLevelClient.<init>(RestHighLevelClient.java:215)
at org.elasticsearch.client.RestHighLevelClient.<init>(RestHighLevelClient.java:200)
at org.elasticsearch.client.RestHighLevelClient.<init>(RestHighLevelClient.java:192)

知道有类似的问题,它是关于 lucene 依赖问题。但我无法获得正确的依赖关系。任何帮助表示赞赏。谢谢

标签: elasticsearchlucene

解决方案


您在这里使用了三个版本的 lucene,7.1.0、7.2.0,而 Elasticsearch 6.2.3 将是 7.2.1 版本。

您应该对所有这些使用相同的版本,因此将 lucene-core 和 lucene-join 依赖项的版本更改为 7.2.1。


推荐阅读