3 Stimmen

solr kann ICUFoldingFilter im contrib-Verzeichnis nicht finden

Ich versuche, eine Multi-Core-Solr-Installation einzurichten, kann aber nicht scheinen, um die Konfiguration korrekt für Solr zu erhalten, um die erforderlichen Klassen zu laden.

Die Ausgabe bei der Ausführung java -jar start.jar umfasst:

Sep 11, 2012 4:23:16 PM org.apache.solr.core.SolrResourceLoader replaceClassLoader
INFO: Adding 'file:/software/solr/solr/contrib/analysis-extras/lib/icu4j-4.8.1.1.jar' to classloader
Sep 11, 2012 4:23:16 PM org.apache.solr.core.SolrResourceLoader replaceClassLoader
INFO: Adding 'file:/software/solr/solr/contrib/analysis-extras/lucene-libs/lucene-icu-3.6.1.jar' to classloader
Sep 11, 2012 4:23:16 PM org.apache.solr.core.SolrResourceLoader replaceClassLoader
INFO: Adding 'file:/software/solr/solr/contrib/analysis-extras/lucene-libs/lucene-smartcn-3.6.1.jar' to classloader
Sep 11, 2012 4:23:16 PM org.apache.solr.core.SolrResourceLoader replaceClassLoader
INFO: Adding 'file:/software/solr/solr/contrib/analysis-extras/lucene-libs/lucene-stempel-3.6.1.jar' to classloader
Sep 11, 2012 4:23:16 PM org.apache.solr.core.SolrConfig <init>
WARNING: <indexDefaults> and <mainIndex> configuration sections are deprecated (but still work). Please use <indexConfig> instead.
Sep 11, 2012 4:23:16 PM org.apache.solr.core.SolrConfig <init>
INFO: Using Lucene MatchVersion: LUCENE_36
Sep 11, 2012 4:23:16 PM org.apache.solr.core.SolrConfig <init>
INFO: Loaded SolrConfig: solrconfig.xml
Sep 11, 2012 4:23:16 PM org.apache.solr.schema.IndexSchema readSchema
INFO: Reading Solr Schema
... snip ...
Sep 11, 2012 4:23:16 PM org.apache.solr.common.SolrException log
SEVERE: java.lang.NoClassDefFoundError: org/apache/lucene/analysis/icu/ICUFoldingFilter
    at java.lang.Class.forName0(Native Method)
    at java.lang.Class.forName(Class.java:247)
    at org.apache.solr.core.SolrResourceLoader.findClass(SolrResourceLoader.java:388)
    at org.apache.solr.core.SolrResourceLoader.newInstance(SolrResourceLoader.java:409)
    at org.apache.solr.util.plugin.AbstractPluginLoader.create(AbstractPluginLoader.java:83)

org/apache/lucene/analysis/icu/ICUFoldingFactory besteht in lucene-icu-3.6.1.jar warum wird sie dann später nicht gefunden?

Meine Verzeichnisstruktur ist:

|-solr
|---contrib
|-----analysis-extras
|-------lib
|-------lucene-libs
|-----velocity
|-------lib
|---cores
|-----core0
|-------conf
|-------data
|---------index
|-----core1
|-------conf
|-------data
|-----core2
|-------conf
|-------data
|---------index
|---lib
|-----solrj-lib
|-------optional

4voto

Brian C. Punkte 4692

Ich fand heraus, dass ich die folgenden Jars in die Bibliothek jedes Instanzverzeichnisses einfügen musste:

apache-solr-analysis-extras-3.6.2.jar
lucene-icu-3.6.2.jar
lucene-stempel-3.6.2.jar
icu4j-4.8.1.1.jar
lucene-smartcn-3.6.2.jar
normalizer.jar UnicodeNormalizeFilter.jar

Mein Hauptproblem war, dass ich nicht wusste, dass ich apache-solr-analysis-extras-x.y.x.jar benötigte. Diese Datei befindet sich in apache-solr-3.6.2/dist. Die nächsten 4 sind aus apache-solr-3.6.2/contrib/analysis-extras. (Ich glaube irgendwie, dass normalizer.jar und UnicodeNormalizerFilter.jar nicht benötigt werden).

Dann in der schema.xml musste ich verwenden:

  <filter class="solr.ICUFoldingFilterFactory"/>

...nicht der Paketname org.apache.lucene.etc. Ich habe den org.apache.lucene.analysis-Paketnamen ausprobiert und es hat nicht funktioniert. Ich fand das etwas merkwürdig, aber so steht es in der Dokumentation. http://wiki.apache.org/solr/AnalyzersTokenizersTokenFilters#solr.ICUTokenizerFactory

0voto

Eine andere, vielleicht weniger arbeitsintensive Möglichkeit, dies zu tun, ist die Erstellung eines lib-Verzeichnisses unter dem Verzeichnis, das Sie für -Dsolr.solr.home verwenden (in Ihrem Fall wäre das wohl "cores"). Ich arbeite mit der Beispielinstallation und habe lib unter multicore angelegt und die analysis jars dorthin kopiert. Wenn ich solr starte mit java -Dsolr.solr.home=multicore -jar start.jar

Im Protokoll wird Folgendes angezeigt, und die von mir definierten Kerne starten ohne Probleme:

2471 [main] INFO  org.apache.solr.core.SolrResourceLoader  Adding 'file:/C:/Solr/solr-4.6.1/example/multicore/lib/icu4j-49.1.jar' to classloader
2471 [main] INFO  org.apache.solr.core.SolrResourceLoader  Adding 'file:/C:/Solr/solr-4.6.1/example/multicore/lib/lucene-analyzers-icu-4.6.1.jar' to classloader
2472 [main] INFO  org.apache.solr.core.SolrResourceLoader  Adding 'file:/C:/Solr/solr-4.6.1/example/multicore/lib/lucene-analyzers-morfologik-4.6.1.jar' to classloader
2472 [main] INFO  org.apache.solr.core.SolrResourceLoader  Adding 'file:/C:/Solr/solr-4.6.1/example/multicore/lib/lucene-analyzers-smartcn-4.6.1.jar' to classloader
2473 [main] INFO  org.apache.solr.core.SolrResourceLoader  Adding 'file:/C:/Solr/solr-4.6.1/example/multicore/lib/lucene-analyzers-stempel-4.6.1.jar' to classloader
2474 [main] INFO  org.apache.solr.core.SolrResourceLoader  Adding 'file:/C:/Solr/solr-4.6.1/example/multicore/lib/solr-analysis-extras-4.6.1.jar' to classloader

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X