【问题标题】:How to open a Lucene 4.3 index?如何打开一个 Lucene 4.3 索引?
【发布时间】:2013-07-08 19:25:10
【问题描述】:

我是一个 Lucene 新手,我正在尝试使用 Luke 打开一个 Lucene 4.3 索引(我正在使用我的简单 Lucene 4.3.1 应用程序创建),但它不断给我:

该位置的目录无效,请查看控制台以获取更多信息。 最后一个异常:java.lang.IllegalArgumentException:一个 SPI 类 名称为 'Lucene42' 的类型 org.apache.lucene.codecs.Codec 不会 存在。需要添加对应的支持这个SPI的JAR文件 到您的类路径。当前的类路径支持以下名称: [Lucene40、Lucene3x、SimpleText、追加]

很好。所以我将代码中使用的Lucene版本设置为Version.LUCENE_43。我也尝试过早期的 3.x 版本。我在这里做错了什么?还有其他可以使用的 Lucene 索引浏览器吗?

我正在使用 java -jar lukeall-4.0.0-ALPHA.jar 运行 Luke,并告诉它打开我的应用正在生成的索引。

更新:

  • 我尝试将 CLASSPATH 设置为包含 lucene-core:4.3.1:jar。这没有帮助。

  • Luke 抛出此错误:

    java.lang.IllegalArgumentException:不存在名称为“Lucene42”的 org.apache.lucene.codecs.Codec 类型的 SPI 类。你需要在你的classpath中添加对应的支持这个SPI的JAR文件。当前classpath支持以下名称:[Lucene40, Lucene3x, SimpleText, Appending] java.lang.IllegalArgumentException:不存在名称为“Lucene42”的 org.apache.lucene.codecs.Codec 类型的 SPI 类。你需要在你的classpath中添加对应的支持这个SPI的JAR文件。当前classpath支持如下名称:[Lucene40, Lucene3x, SimpleText, Appending]

非常感谢!

【问题讨论】:

  • 检查 jar 版本是否兼容。
  • 您使用的是最新版本的 Luke 吗?您是否尝试将带有 Lucene42Codec 的 jar 添加到类路径?看起来您的 Luke 版本只是不知道您用于索引的新格式。
  • 请检查我的 cmets 以获取更新。
  • 显然,这似乎是卢克中的一个错误。有关详细信息,请参见此处:code.google.com/p/luke/issues/detail?id=72

标签: java lucene


【解决方案1】:

经过长时间的搜索,我被指示在此处查找最新的 Luke 版本:Opengrok,您可以在其中找到该站点上可用的 4.0.0-alpha 之后的 Luke 版本。 Luke 4.4 应该能够阅读当前的索引格式,但有一些注意事项。

【讨论】:

    【解决方案2】:

    有人花时间为lucene-4.3.1修复了luke。

    https://github.com/tarzanek/luke

    【讨论】:

    • 干得好!我自己尝试过,但我还不太了解 Lucene,所以我求助于回滚到 Luke 支持的早期版本的 Lucene。
    • 只需git clone它然后运行dist目录下的jar lukeall文件
    【解决方案3】:

    github上有一个较新的存储库,可以下载发布:

    https://github.com/DmitryKey/luke/releases

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-02-15
      • 1970-01-01
      • 1970-01-01
      • 2011-03-26
      • 2011-02-13
      • 2013-05-10
      • 2012-05-19
      • 2010-11-16
      相关资源
      最近更新 更多