【问题标题】:Elastic Search Lucene version errorElastic Search Lucene 版本错误
【发布时间】:2015-02-03 05:41:53
【问题描述】:

我有一个非常简单的 ES 客户端,它将向本地 ES 服务器(ES 的 1.4.1 版本)发送查询并获取结果并显示给用户。现在,我将此代码带到另一个项目 X 中并尝试将它与 X 一起使用,因为我需要一些来自 X 的 API。 现在,当我在 X 中运行相同的代码时,我收到此错误并且不知道如何解决。你能帮我解决这个问题吗? 线程“main”中的异常 java.lang.NoSuchFieldError: LUCENE_3_6

at org.elasticsearch.Version.<clinit>(Version.java:45) 
at org.elasticsearch.node.internal.InternalNode.<init>(InternalNode.java:136) 
at org.elasticsearch.node.NodeBuilder.build(NodeBuilder.java:159) 
at org.elasticsearch.node.NodeBuilder.node(NodeBuilder.java:166) 
at org.bmi.elasticsearch.ranking.TestClass2.main(TestClass2.java:54)

【问题讨论】:

  • 项目中缺少 Lucene jar 或多个版本的 Lucene?
  • 如果提供的答案之一解决了您的问题,请接受它以关闭问题。谢谢!

标签: java elasticsearch lucene


【解决方案1】:

您似乎正在尝试在您的项目中将 Elasticsearch 和 Lucene 用作单独的库。

Elastissearch 1.4.1 基于 Lucene 4.10.2。您可以查看发布博客页面here了解更多详细信息。

要解决您的问题,您需要将 Lucene 库版本更新到 4.10 并使用 Version.LUCENE_CURRENT 而不是 LUCENE_3_6。

您可以找到hereLucene 4.10 Core API 文档。

我希望这会有所帮助。如果您有任何疑问,请随时发表评论。

【讨论】:

  • 感谢您的帮助。这真的有效。而且,除了这篇文章之外,这个问题没有解决方案。您能否告诉我为什么最新版本不适用于 v 1.5 进行弹性搜索?
  • 很抱歉我还不能回答 elasticsearch v1.5 的问题。它是最近发布的,我还没有看过它。尝试验证最新版本的 Elasticsearch 使用的是哪个版本的 lucene。
【解决方案2】:

同样的错误也可能发生在另一种情况下——如果有人在与以前版本相同的目录中解压新的 ElasticSearch 版本。 然后它以 'ElasticSearch/lib' 目录中的两个版本的 jars 结束。启动时出现错误。

在这种情况下,解决方法是进行干净的 ElasticSearch 安装,没有剩余。

【讨论】:

    猜你喜欢
    • 2018-12-23
    • 2021-11-26
    • 1970-01-01
    • 2018-07-17
    • 2020-03-11
    • 1970-01-01
    • 2015-05-31
    • 2015-09-08
    • 2018-05-29
    相关资源
    最近更新 更多