2016-07-22 11 views
4

Laut den nutch Nachrichten ist die neueste Version von Nutch 2.3.1 mit Solr 4.10.3 kompatibel, was eine sehr alte Version von solr ist.Solr 6 und Nutch 2.3.1 integration

Können wir Solr 6 mit Nutch 2.3.1 integrieren? Was werden die Nachteile sein, wenn Solr 6 integriert wird? Hat das jemand probiert?

+0

Nutch enthält eine schema.xml mit allen Feldern es erfordert $ NUTCH_HOME \ conf \ schema.xml. Das Upgrade auf Solr 4.10.2 vor 11 Monaten ist unter https://github.com/apache/nutch/commit/a67cbc7d99c3b4172e690408f0abc54a098348bc – rleir

Antwort

9

Das ist eine alte Frage, aber ich habe gerade Nutch 1.12 mit Solr 6.3.0 gesprochen. Die erforderlichen schema/solrconfig-Änderungen sollten für Nutch 2.x identisch sein. Hier ist, was ich getan habe:

Laden und extrahieren Sie beide Produkte in ein Verzeichnis, z. ~/Mycrawler, dann gehen Sie in das Verzeichnis solr und einen Kern für nutch erstellen:

solr-6.3.0/bin $ ./solr start 
solr-6.3.0/bin $ ./solr create_core -c nutch -d basic_configs 
solr-6.3.0/bin $ ./solr stop 

Dies wird solr-6.3.0/server/Solr/nutch wo das Schema usw. befinden wird erstellen. Nun müssen wir die neue Auto-Managed-Schema-Definition und ersetzen Sie es mit dem nutch gelieferten schema.xml entfernen:

solr-6.3.0/server/solr/nutch/conf $ rm managed-schema 
solr-6.3.0/server/solr/nutch/conf $ cp ~/mycrawler/apache-nutch-1.12/conf/schema.xml . 

Jetzt schema.xml bearbeiten und alle Instanzen von enablePositionIncrements="true" in allen <filter class="solr.StopFilterFactory" ignoreCase="true" ... Definitionen entfernen.

Auch in solr-6.3.0/server/solr/nutch/conf/solrconfig.xml, kommentieren diese typeMapping Blöcke, so erhalten Sie:

<processor class="solr.AddSchemaFieldsUpdateProcessorFactory"> 
    <str name="defaultFieldType">strings</str> 
    <!-- 
    <lst name="typeMapping"> 
    <str name="valueClass">java.lang.Boolean</str> 
    <str name="fieldType">booleans</str> 
    </lst> 
    <lst name="typeMapping"> 
    <str name="valueClass">java.util.Date</str> 
    <str name="fieldType">tdates</str> 
    </lst> 
    <lst name="typeMapping"> 
    <str name="valueClass">java.lang.Long</str> 
    <str name="valueClass">java.lang.Integer</str> 
    <str name="fieldType">tlongs</str> 
    </lst> 
    <lst name="typeMapping"> 
    <str name="valueClass">java.lang.Number</str> 
    <str name="fieldType">tdoubles</str> 
    </lst> 
    --> 
</processor> 

Nun starten Sie den Server erneut:

solr-6.3.0/bin $ ./solr start 

Wenn Sie die Admin-GUI gehen, sollte es den Kern zeigen wie begonnen ohne weitere Schema-Probleme.

Jetzt kann das Crawling-Skript ausgeführt werden und wird in unsere bleeding edge Solr erfolgreich schreiben (dies wahrscheinlich für Nutch 2 ist etwas anders):

./crawl -i \ 
    -D solr.server.url=http://localhost:8983/solr/nutch \ 
    ~/mycrawler/nutch_work/seed \ 
    ~/mycrawler/nutch_work/crawl \ 
    1 
+1

Ich bekomme die folgende Ausnahme in der Browser-Benutzeroberfläche. Irgendeine Idee? 'org.apache.solr.common.SolrException: org.apache.solr.common.SolrException: conf konnte nicht für core nutch geladen werden: Schema /server/solr/nutch/conf/schema.xml: Plugin konnte nicht geladen werden init failure für [schema.xml] analysator/filter: Fehler beim Erstellen der Klasse: 'org.apache.lucene.analysis.core.StopFilterFactory'' –

+3

hört sich so an, als hätten Sie vergessen, eines der enablePositionIncrements = "true" in einer StopFilterFactory-Definition zu entfernen. .. es gibt eine Reihe von ihnen alle über schema.xml –

+0

Genau ... Gelöst. –