Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

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

Closed
mzch opened this issue Jun 6, 2019 · 9 comments
Closed

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

mzch opened this issue Jun 6, 2019 · 9 comments

Comments

@mzch
Copy link

mzch commented Jun 6, 2019

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.

@albogdano
Copy link
Member

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.

@katatunix
Copy link

katatunix commented Jun 10, 2019

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

@mzch
Copy link
Author

mzch commented Jun 10, 2019

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.

@albogdano
Copy link
Member

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

@katatunix
Copy link

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.

@weisjohn
Copy link

weisjohn commented Jun 12, 2019

@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.

@albogdano
Copy link
Member

@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

@rafik777
Copy link

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

@albogdano
Copy link
Member

@rafik777 yes, just pushed those to master now

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

5 participants