【发布时间】: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。