lucene-pylucene-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From David Allouche <da...@allouche.net>
Subject java.lang.IllegalArgumentException: Could not load codec 'Lucene62'. Did you forget to add lucene-backward-codecs.jar?
Date Tue, 04 Jun 2019 18:30:03 GMT
Hello,

I use pylucene, and I am upgrading from 6.5.0 to 7.7.1.

Opening my old index using the new pylucene, I get

> Traceback (most recent call last):
>   ...
>   File "/home/user/jobaffinity/lib/luceneindex.py", line 58, in create_lucene_index_maybe
>     writer = IndexWriter(directory, config)
> lucene.JavaError: <super: <class 'JavaError'>, <JavaError object>>
>     Java stacktrace:
> java.lang.IllegalArgumentException: Could not load codec 'Lucene62'.  Did you forget
to add lucene-backward-codecs.jar?
>     at org.apache.lucene.index.SegmentInfos.readCodec(SegmentInfos.java:428)
>     at org.apache.lucene.index.SegmentInfos.readCommit(SegmentInfos.java:360)
>     at org.apache.lucene.index.SegmentInfos.readCommit(SegmentInfos.java:291)
>     at org.apache.lucene.index.IndexWriter.<init>(IndexWriter.java:845)
> Caused by: java.lang.IllegalArgumentException: An SPI class of type org.apache.lucene.codecs.Codec
with name 'Lucene62' does not exist.  You need to add the corresponding JAR file supporting
this SPI to your classpath.  The current classpath supports the following names: [Lucene70]
>     at org.apache.lucene.util.NamedSPILoader.lookup(NamedSPILoader.java:116)
>     at org.apache.lucene.codecs.Codec.forName(Codec.java:116)
>     at org.apache.lucene.index.SegmentInfos.readCodec(SegmentInfos.java:424)
>     ... 3 more

I am really not familiar with the Java side of things. With some help from the web, I found
out where to download the jars.

I presume I need http://central.maven.org/maven2/org/apache/lucene/lucene-backward-codecs/7.7.1/lucene-backward-codecs-7.7.1.jar

But then, I am quite clueless about what to do. I tried dumping the jar right next to lucene-core-7.7.1.jar,
in my $(VENV)/lib/python2.7/site-packages/lucene, but that does not seem to help.

I have a large-ish index with about 22M entries, used in a public-facing service, so I very
much like to avoid rebuilding the index every time I upgrade pylucene.

I could reverse-engineer this script:
https://github.com/cominvent/solr-tools/blob/master/upgradeindex/upgradeindex.sh

But that would require me to put the service down while running the migration.

How can I package the lucene-backwards-codecs in pylucene?



Mime
View raw message