作为我学习的一部分,我需要实现一个定制的Lucene编解码器,目标是Lucene 5.3.1。
我已尝试按照此处的说明操作:
http://opensourceconnections.com/blog/2013/06/05/build-your-own-lucene-codec/开始使用,但在运行Lucene测试时,我在加载编解码器方面遇到了一些麻烦。
我已在https://github.com/sigbjornlo/codecs
上传了一个最小项目运行 mvn package 会生成一个包含文件 META-INF/services/org.apache.lucene.codecs.Codec
的jar,其中包含一行:
edu.ntnu.sigbjornlo.codecs.HelloCodec
...这是编解码器类所在的位置。它只是一个FilterCodec子类,不会做任何额外的事情。
运行 ant -Dtestcase = TestSegmentTermDocs -Deststs.codec = HelloCodec -lib /path/to/hello-1.0.jar test给出了以下错误:
java.lang.IllegalArgumentException:
An SPI class of type org.apache.lucene.codecs.Codec with name 'HelloCodec' does not exist.
You need to add the corresponding JAR file supporting this SPI to your classpath.
The current classpath supports the following names: [SimpleText, Asserting, CheapBastard, FastCompressingStoredFields, FastDecompressionCompressingStoredFields, HighCompressionCompressingStoredFields, DummyCompressingStoredFields, Lucene53]
我在这里做错了什么?有没有办法让Lucene的SPI加载器记录它尝试和/或无法加载的内容,以及为什么?