当前位置: 首页 > 知识库问答 >
问题:

是什么导致lucene类型的SPI类出错。编解码器。编解码器名称“Lucene42”

丁志勇
2023-03-14

无法找出是什么导致了“一个org类型的SPI类”。阿帕奇。卢森。编解码器。名为“Lucene42”的编解码器不存在。您需要将支持此SPI的相应JAR文件添加到类路径的

任何帮助都将不胜感激

java.lang.IllegalArgumentException: A SPI class of type org.apache.lucene.codecs.Codec with name 'Lucene42' does not exist. You need to add the corresponding JAR file supporting this SPI to your classpath.The current classpath supports the following names: []
org.apache.lucene.util.NamedSPILoader.lookup(NamedSPILoader.java:104)
org.apache.lucene.codecs.Codec.forName(Codec.java:95)
org.apache.lucene.codecs.Codec.<clinit>(Codec.java:122)
org.apache.lucene.index.LiveIndexWriterConfig.<init>(LiveIndexWriterConfig.java:118)
org.apache.lucene.index.IndexWriterConfig.<init>(IndexWriterConfig.java:145)
com.damn.fr.rr.rent.getResukt(Man.java:404)
com.damn.fr.rr.handler.pg.setResult(pg.java:103)
com.damn.fr.rr.cmd.del.execute(del.java:19)
com.damn.fr.rr.servlet.PublicController.doPost(controller.java:199)
javax.servlet.http.HttpServlet.service(HttpServlet.java:754)
javax.servlet.http.HttpServlet.service(HttpServlet.java:847)

jboss部署结构。xml

    <sub-deployment name="damn.jar">
    <dependencies>
        <module name="org.apache.commons.fileupload" />
        <module name="org.apache.commons.io" />
        <module name="org.apache.commons.lang3" />
        <module name="org.apache.commons.validator" />
        <module name="org.apache.lucene" />
        <module name="net.sf.jasperreports" />
        <module name="com.google.gson" />

    </dependencies>
</sub-deployment>

module.xml

<module xmlns="urn:jboss:module:1.0" name="org.apache.lucene">
<resources>
<resource-root path="lucene-analyzers-common-4.2.0.jar"/>
<resource-root path="lucene-core-4.2.0.jar"/>
<resource-root path="lucene-queryparser-4.2.0.jar"/>
<resource-root path="lucene-codecs-4.2.0.jar"/>
</resources>

<dependencies>
</dependencies>

ant构建文件段

<pathelement path="${thirdPartyDir}/lucene-analyzers-common-4.2.0.jar" />
<pathelement path="${thirdPartyDir}/lucene-codecs-4.2.0.jar" />
<pathelement path="${thirdPartyDir}/lucene-queryparser-  4.2.0.jar" />
<pathelement path="${thirdPartyDir}/lucene-core-4.2-SNAPSHOT.jar" />

共有3个答案

陶星波
2023-03-14

有时,当您使用lucene版本创建索引时,或者您的索引已损坏时,就会发生这种情况。尝试删除整个索引并重新编制索引。

满雨石
2023-03-14

我发现了一些关于这个的东西。虽然我使用的是lucene 4.10.2,但希望有帮助。

编解码器在“org”中配置。阿帕奇。卢森。编解码器。编解码器'。我查看了lucene-core-4.10.2。jar’有这样一个文件‘META-INF\services\org’。阿帕奇。卢森。编解码器。编解码器'。所以你可以把类名放到配置文件中,lucene就会找到它。然而,您不需要提取jar文件,添加它并重新打包jar。只需创建一个具有相同目录结构的新文件,即“META-INF\services\org”。阿帕奇。卢森。编解码器。编解码器”进入java的类路径,例如“target/classes”目录,java会找到所有编解码器配置文件并加载它们。

申查猛
2023-03-14

请在中添加以下文件

文件夹:META-INF/service/

File:org.apache.lucene.codecs.编解码器

文本:org。阿帕奇。卢森。编解码器。lucene54。Lucene54Codec

请查看解决方案,并在https://anwaarlabs.wordpress.com/2017/02/25/lucene-an-spi-class-of-type-org-apache-lucene-codecs-codec-with-name-does-not-exist/

此解决方案是为Lucene5定义的。4它也适用于Lucene 4.2。谢谢

 类似资料:
  • 虽然我们一直把解码器和编码器作为不同的实体来讨论,但你有时可能会发现把入站和出站的数据和信息转换都放在同一个类中更实用。Netty的抽象编解码器类就是用于这个目的,他们把一些成对的解码器和编码器组合在一起,以此来提供对于字节和消息都相同的操作。(这些类实现了 ChannelInboundHandler 和 ChannelOutboundHandler )。 您可能想知道是否有时候使用单独的解码器和

  • 我们已经在前两节中表征并变换了不定长的输入序列。但在自然语言处理的很多应用中,输入和输出都可以是不定长序列。以机器翻译为例,输入可以是一段不定长的英语文本序列,输出可以是一段不定长的法语文本序列,例如 英语输入:“They”、“are”、“watching”、“.” 法语输出:“Ils”、“regardent”、“.” 当输入和输出都是不定长序列时,我们可以使用编码器—解码器(encoder-de

  • 我想将FieldMmap类的集合保存为json字符串- ... etc-完整代码:https://github.com/alexeyOnGitHub/scala-typesafe/blob/master/src/main/scala/com/example/model/Field.scala Circe代码: 错误:(14,65)找不到io类型的延迟隐式值。circe。通用的解码。DerivedD

  • 问题内容: Android中是否存在用于String的base-64解码器和编码器? 问题答案: 看到 似乎这是在API版本8或android 2.2中添加的,因此在较旧的平台上将不可用。 但是它的来源是这样,如果需要的话,可以将其原样复制为旧版本。

  • Netty 的是一个复杂和先进的框架,但它并不玄幻。当我们请求一些设置了 key 的给定值时,我们知道 Request 类的一个实例被创建来代表这个请求。但 Netty 并不知道 Request 对象是如何转成 Memcached 所期望的。Memcached 所期望的是字节序列;忽略使用的协议,数据在网络上传输永远是字节序列。 将 Request 对象转为 Memcached 所需的字节序列,N