You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@jackrabbit.apache.org by Francis Nguyen <fr...@mail.utoronto.ca> on 2020/02/10 16:52:00 UTC

Has anyone gotten oak-solr-osgi and oak-lucene 1.8.8 working together?

Hello everyone,

Has anyone gotten oak org.apache.jackrabbit/oak-solr-osgi/1.8.8 running alongside org.apache.jackrabbit/oak-lucene/1.8.8? It appears that oak-solr-osgi uses SolR version 5.5.5 (which requires Lucene 5.0), but oak-lucene will use Lucene version 4.7.1. The result of loading both of them on a sling instance is that I can get the two of them loaded together, but when I try to create a SolR index I get the following error (and a few subsequent errors relaying the same information):

10.02.2020 11:44:33.160 *ERROR* [coreLoadExecutor-6-thread-1] org.apache.solr.core.CoreContainer Error creating core [oak]: An SPI class of type org.apache.lucene.codecs.PostingsFormat with name 'Lucene50' does not exist.  You need to add the corresponding JAR file supporting this SPI to your classpath.  The current classpath supports the following names: [completion]
 org.apache.solr.common.SolrException: An SPI class of type org.apache.lucene.codecs.PostingsFormat with name 'Lucene50' does not exist.  You need to add the corresponding JAR file supporting this SPI to  your classpath.  The current classpath supports the following names: [completion]
   at org.apache.solr.core.SolrCore.<init>(SolrCore.java:820) [org.apache.jackrabbit.oak-solr-osgi:1.8.8]
   at org.apache.solr.core.SolrCore.<init>(SolrCore.java:658) [org.apache.jackrabbit.oak-solr-osgi:1.8.8]
   at org.apache.solr.core.CoreContainer.create(CoreContainer.java:820) [org.apache.jackrabbit.oak-solr-osgi:1.8.8]
   at org.apache.solr.core.CoreContainer.access$000(CoreContainer.java:90) [org.apache.jackrabbit.oak-solr-osgi:1.8.8]
   at org.apache.solr.core.CoreContainer$1.call(CoreContainer.java:473) [org.apache.jackrabbit.oak-solr-osgi:1.8.8]
   at org.apache.solr.core.CoreContainer$1.call(CoreContainer.java:464) [org.apache.jackrabbit.oak-solr-osgi:1.8.8]
   at java.util.concurrent.FutureTask.run(FutureTask.java:266)
   at org.apache.solr.common.util.ExecutorUtil$MDCAwareThreadPoolExecutor$1.run(ExecutorUtil.java:231) [org.apache.jackrabbit.oak-solr-osgi:1.8.8]
   at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
   at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
   at java.lang.Thread.run(Thread.java:748)

I did some digging and I think the problem is that the same version of both oak-solr-osgi and oak-lucene contain META-INF/services/org.apache.lucene.codecs.PostingsFormat, but while oak-solr-osgi exports org.apache.lucene.search.suggest.document.Completion50PostingsFormat in there, oak-lucene exports org.apache.lucene.codecs.lucene40.Lucene40PostingsFormat and org.apache.lucene.codecs.lucene41.Lucene41PostingsFormat. (I'd post a link to the source but I'm not sure how this mailing list handles links)

Has anyone gotten these two packages running together? I'd ideally like to use both Lucene indexes and SolR indexes in my database, and found it odd that the two seem incompatible even when both packages are the same version.

Sorry if this is the wrong mailing list -- I wasn't sure which one to send this to.

Thanks,
Francis Nguyen

Re: Has anyone gotten oak-solr-osgi and oak-lucene 1.8.8 working together?

Posted by Torgeir Veimo <to...@gmail.com>.
You can always try running with a shaded oak-lucene dependency, see
https://github.com/tveimo/oak-lucene-shaded

compile 'com.github.tveimo:oak-lucene-shaded:1.24.0'

On Tue, 11 Feb 2020 at 02:52, Francis Nguyen <fr...@mail.utoronto.ca> wrote:
>
> Hello everyone,
>
> Has anyone gotten oak org.apache.jackrabbit/oak-solr-osgi/1.8.8 running alongside org.apache.jackrabbit/oak-lucene/1.8.8? It appears that oak-solr-osgi uses SolR version 5.5.5 (which requires Lucene 5.0), but oak-lucene will use Lucene version 4.7.1. The result of loading both of them on a sling instance is that I can get the two of them loaded together, but when I try to create a SolR index I get the following error (and a few subsequent errors relaying the same information):
>
> 10.02.2020 11:44:33.160 *ERROR* [coreLoadExecutor-6-thread-1] org.apache.solr.core.CoreContainer Error creating core [oak]: An SPI class of type org.apache.lucene.codecs.PostingsFormat with name 'Lucene50' does not exist.  You need to add the corresponding JAR file supporting this SPI to your classpath.  The current classpath supports the following names: [completion]
>  org.apache.solr.common.SolrException: An SPI class of type org.apache.lucene.codecs.PostingsFormat with name 'Lucene50' does not exist.  You need to add the corresponding JAR file supporting this SPI to  your classpath.  The current classpath supports the following names: [completion]
>    at org.apache.solr.core.SolrCore.<init>(SolrCore.java:820) [org.apache.jackrabbit.oak-solr-osgi:1.8.8]
>    at org.apache.solr.core.SolrCore.<init>(SolrCore.java:658) [org.apache.jackrabbit.oak-solr-osgi:1.8.8]
>    at org.apache.solr.core.CoreContainer.create(CoreContainer.java:820) [org.apache.jackrabbit.oak-solr-osgi:1.8.8]
>    at org.apache.solr.core.CoreContainer.access$000(CoreContainer.java:90) [org.apache.jackrabbit.oak-solr-osgi:1.8.8]
>    at org.apache.solr.core.CoreContainer$1.call(CoreContainer.java:473) [org.apache.jackrabbit.oak-solr-osgi:1.8.8]
>    at org.apache.solr.core.CoreContainer$1.call(CoreContainer.java:464) [org.apache.jackrabbit.oak-solr-osgi:1.8.8]
>    at java.util.concurrent.FutureTask.run(FutureTask.java:266)
>    at org.apache.solr.common.util.ExecutorUtil$MDCAwareThreadPoolExecutor$1.run(ExecutorUtil.java:231) [org.apache.jackrabbit.oak-solr-osgi:1.8.8]
>    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
>    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
>    at java.lang.Thread.run(Thread.java:748)
>
> I did some digging and I think the problem is that the same version of both oak-solr-osgi and oak-lucene contain META-INF/services/org.apache.lucene.codecs.PostingsFormat, but while oak-solr-osgi exports org.apache.lucene.search.suggest.document.Completion50PostingsFormat in there, oak-lucene exports org.apache.lucene.codecs.lucene40.Lucene40PostingsFormat and org.apache.lucene.codecs.lucene41.Lucene41PostingsFormat. (I'd post a link to the source but I'm not sure how this mailing list handles links)
>
> Has anyone gotten these two packages running together? I'd ideally like to use both Lucene indexes and SolR indexes in my database, and found it odd that the two seem incompatible even when both packages are the same version.
>
> Sorry if this is the wrong mailing list -- I wasn't sure which one to send this to.
>
> Thanks,
> Francis Nguyen



-- 
-Tor