2015-02-27 8 views
14

Ich habe Solr eingerichtet, bisher funktioniert alles nur Dandy, aber jetzt wollte ich die EdgeNGram-Funktionalität zu meinen Suchen hinzufügen. Aber sobald ich es in meinen schema.xml werfen, beginnt er den Fehler zu werfen:EdgeNGram: Fehler bei der Instanziierung Klasse: 'org.apache.lucene.analysis.ngram.EdgeNGramFilterFactory'

org.apache.solr.common.SolrException:org.apache.solr.common.SolrException: 
Could not load conf for core collection1: Plugin init failure for [schema.xml] 
fieldType "text_en_splitting": Plugin init failure for [schema.xml] analyzer/filter: 
Error instantiating class: 'org.apache.lucene.analysis.ngram.EdgeNGramFilterFactory'. 
Schema file is /opt/solr/server/solr/collection1/conf/schema.xml 

Das entsprechende Schema Teil sieht wie folgt aus:

<filter class="solr.EdgeNGramFilterFactory" minGramSize="2" maxGramSize="15" side="front"/> 

Die Konfiguration der Rest der Feldtyp ist in Ordnung, wie ich es ziemlich ausführlich getestet habe. Es wird nur diese Zeile hinzugefügt, die den Fehler verursacht.

Jetzt habe ich mich etwas umgesehen, und normalerweise bedeuten diese Fehler, dass es ein .jar gibt, das fehlt (zumindest gemäß den anderen zwei Fragen, die hier gepostet werden, jedoch nicht in Bezug auf NGram). Also ging ich weiter und ausgegrabenen lucene-Analysatoren-common.jar und ausdrücklich hinzugefügt, um es in meinem solrconfig.xml, etwa so:

<lib dir="${solr.install.dir:../../../..}/dist/" regex="lucene-analyzers-common-\d.*\.jar" /> 

Kein Glück. Ich weiß, dass der Pfad in Ordnung ist, aber ich habe den mysql_connector genau so eingefügt. Wie auch immer, ich wuchs ziemlich dieses Fehlers müde, also ging ich voraus und enthalten jede einzelne .jar, die ich ausgraben konnte:

<lib dir="${solr.install.dir:../../../..}/dist/" regex="solr-.*\.jar" /> 

Nope.jpg

Natürlich wurde all dies von vielen begleitet bin/solr stop -all und starts, alle bedienen mich immer noch dieses hübsche, rote Banner im Solr-Admin. Ich bin auf Solr 5.0.0

Hilfe?

+1

Ich habe genau das gleiche Problem wie Sie, herausgefunden, dass das Attribut nicht funktioniert. Kleiner Hinweis: Sie müssen Solr nicht jedes Mal neu starten, es genügt, den entsprechenden Core im Core-Admin neu zu laden. – Campfire

Antwort

21

Nun, das ist peinlich, aber es ist eine typische Sache, die mir passiert. Nicht 5 Minuten nachdem ich diese Frage gepostet habe, habe ich den Fehler verschwinden lassen (ich sage "Fehler geh weg", ich habe nicht gesagt "Ich habe es gelöst", weil ich es noch nicht komplett getestet habe).

Wie auch immer, in meinem Filter-Tag, sehen Sie, dass side="front" Tag? Ja, schlechte Idee anscheinend. Es ist aber seltsam, weil ich fand, dass in den Apache-Dokumenten: https://wiki.apache.org/solr/AnalyzersTokenizersTokenFilters#solr.EdgeNGramFilterFactory, habe ich es nicht erfunden oder so.

Kann mir das jemand erklären?

+7

Es wurde in Solr 4.4 als veraltet markiert und mit 5.0 entfernt. Es ist also im Grunde ein Fehler in der Dokumentation. Schau stattdessen hier: https://cwiki.apache.org/confluence/display/solr/Filter+Descriptions#FilterDescriptions-EdgeN-GramFilter – Campfire

+1

Verdammt, das ist ziemlich nervig. Dumme Dokumentation. Herzlichen Glückwunsch für die Suche nach dem Problem :) –

Verwandte Themen