Erudika / para

Multitenant backend server for building web and mobile apps rapidly. The backend for busy developers. (self-hosted or hosted)

Home Page:https://paraio.org

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Undocumented nessesary of lucene-backward-codecs.jar in 1.31.3?

mzch opened this issue · comments

para 1.31.3 reports an error as below:

2019-06-06 21:31:21 [ERROR] null
java.lang.IllegalArgumentException: Could not load codec 'Lucene70'.  Did you forget to add lucene-backward-codecs.jar?
	at org.apache.lucene.index.SegmentInfos.readCodec(SegmentInfos.java:420)
	at org.apache.lucene.index.SegmentInfos.readCommit(SegmentInfos.java:352)
	at org.apache.lucene.index.SegmentInfos.readCommit(SegmentInfos.java:289)
	at org.apache.lucene.index.StandardDirectoryReader$1.doBody(StandardDirectoryReader.java:64)
	at org.apache.lucene.index.StandardDirectoryReader$1.doBody(StandardDirectoryReader.java:61)
	at org.apache.lucene.index.SegmentInfos$FindSegmentsFile.run(SegmentInfos.java:680)
	at org.apache.lucene.index.StandardDirectoryReader.open(StandardDirectoryReader.java:84)
	at org.apache.lucene.index.DirectoryReader.open(DirectoryReader.java:76)
	at org.apache.lucene.index.DirectoryReader.open(DirectoryReader.java:64)
	at com.erudika.para.search.LuceneUtils.getIndexReader(LuceneUtils.java:878)
	at com.erudika.para.search.LuceneUtils.searchQuery(LuceneUtils.java:719)
	at com.erudika.para.search.LuceneSearch.findById(LuceneSearch.java:155)
	at com.erudika.para.search.LuceneSearch$$EnhancerByGuice$$5b51948d.CGLIB$findById$21(<generated>)
	at com.erudika.para.search.LuceneSearch$$EnhancerByGuice$$5b51948d$$FastClassByGuice$$4f525818.invoke(<generated>)
	at com.google.inject.internal.cglib.proxy.$MethodProxy.invokeSuper(MethodProxy.java:228)
	at com.google.inject.internal.InterceptorStackCallback$InterceptedMethodInvocation.proceed(InterceptorStackCallback.java:76)
	at com.erudika.para.aop.SearchQueryAspect.invokeTimedSearch(SearchQueryAspect.java:93)
	at com.erudika.para.aop.SearchQueryAspect.invoke(SearchQueryAspect.java:78)
	at com.google.inject.internal.InterceptorStackCallback$InterceptedMethodInvocation.proceed(InterceptorStackCallback.java:78)
	at com.google.inject.internal.InterceptorStackCallback.intercept(InterceptorStackCallback.java:54)
	at com.erudika.para.search.LuceneSearch$$EnhancerByGuice$$5b51948d.findById(<generated>)
	at com.erudika.para.search.LuceneSearch.findById(LuceneSearch.java:375)
	at com.erudika.para.search.LuceneSearch$$EnhancerByGuice$$5b51948d.CGLIB$findById$20(<generated>)
	at com.erudika.para.search.LuceneSearch$$EnhancerByGuice$$5b51948d$$FastClassByGuice$$4f525818.invoke(<generated>)
	at com.google.inject.internal.cglib.proxy.$MethodProxy.invokeSuper(MethodProxy.java:228)
	at com.google.inject.internal.InterceptorStackCallback$InterceptedMethodInvocation.proceed(InterceptorStackCallback.java:76)
	at com.erudika.para.aop.SearchQueryAspect.invoke(SearchQueryAspect.java:80)
	at com.google.inject.internal.InterceptorStackCallback$InterceptedMethodInvocation.proceed(InterceptorStackCallback.java:78)
	at com.google.inject.internal.InterceptorStackCallback.intercept(InterceptorStackCallback.java:54)
	at com.erudika.para.search.LuceneSearch$$EnhancerByGuice$$5b51948d.findById(<generated>)
	at com.erudika.para.utils.HealthUtils$1.performHealthCheck(HealthUtils.java:65)
	at com.erudika.para.utils.HealthUtils$1.onInitialize(HealthUtils.java:93)
	at com.erudika.para.Para.initialize(Para.java:110)
	at com.erudika.para.ParaServer.initialize(ParaServer.java:153)
	at com.erudika.para.ParaServer.runAsJAR(ParaServer.java:415)
	at com.erudika.para.ParaServer.main(ParaServer.java:424)
	at com.erudika.para.Run.main(Run.java:26)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.base/java.lang.reflect.Method.invoke(Method.java:566)
	at org.springframework.boot.loader.MainMethodRunner.run(MainMethodRunner.java:48)
	at org.springframework.boot.loader.Launcher.launch(Launcher.java:87)
	at org.springframework.boot.loader.Launcher.launch(Launcher.java:50)
	at org.springframework.boot.loader.PropertiesLauncher.main(PropertiesLauncher.java:593)
Caused by: java.lang.IllegalArgumentException: An SPI class of type org.apache.lucene.codecs.Codec with name 'Lucene70' does not exist.  You need to add the corresponding JAR file supporting this SPI to your classpath.  The current classpath supports the following names: [Lucene80]
	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:416)
	... 44 common frames omitted
2019-06-06 21:31:21 [WARN ] Server is unhealthy - the search index may be corrupted and may have to be rebuilt.

I installed lucense 8.1.1 and booted up para successfully, but please put it in the latest document.

A full reindex is required when migrating between major Lucene versions. In your case the index file is version 7 and Para 1.31.3 uses Lucene 8.

Sorry but how to fix this problem (I'm new to Para and Lucene)?

Download Lucense 8 from https://lucene.apache.org/core/downloads.html
and copy or move core jar and backward-codecs jar to lib directory as well as other plugins.

Rebuilding the index should also fix this - POST /v1/_reindex http://paraio.org/docs/#053-api-reindex

The solution of @albogdano works, but notice that in my case I have to also delete the xxx-lucene folders in the data folder of para.

@katatunix thanks for that fix; I had to do the same thing.

@albogdano I did indeed try to do the reindexing first, which successfully completed, however, I still had no data until I removed both para-lucene and scoold-lucene and then reindexed again.

@weisjohn @katatunix Hm, I thought a full reindex would be enough... anyway I added backward-codecs to the para-search-lucene project to make such migrations easier. Erudika/para-search-lucene@06e035b

@albogdano Could you update this dependency para-search-lucene in para-jar/para-war pom.xml to the latest version?

@rafik777 yes, just pushed those to master now