Installation von Apache Solr 4.6.0 und Kompatibilität mit Drupal7

14

Ich habe Probleme bei der Installation von Apache Solr. Die neueste Version, die ich heruntergeladen habe, war 4.6.0. In allen Drupal-Dokumentationen und -Tutorials (siehe http://www.youtube.com/watch?v=ori-VvvH1Aw ) geht es jedoch um 3.5.0. Während 3.5.0 im Internet nicht zu finden ist, weist 4.6.0 eine völlig andere Verzeichnisstruktur auf, und es gibt keine Dokumentation zur Installation dieser neuesten Version auf einem Server oder einem lokalen WAMP. Es wird nicht erwähnt, welche Apache Solr-Versionen am besten für die Arbeit mit Drupal empfohlen werden. Irgendeine Hilfe?

Drupalina
quelle
Hier gibt es einen ausgezeichneten Artikel: lullabot.com/blog/article/installing-solr-use-drupal Was für mich bei 4.5.1 funktioniert hat. Wenn Sie Search API Solr verwenden möchten, habe ich hier ein Installationsbeispiel für Ubuntu 12.04 geschrieben: drupal.org/node/2143715
Dominic Woodman

Antworten:

21

Sie sind nicht alleine Ich musste das Internet durchsuchen und mehrere Artikel lesen, bevor ich das alles wirklich verstehe. Ich habe drei verschiedene Methoden ausprobiert, bis ich es endlich richtig verstanden habe!

Wenn Sie Debian / Ubuntu (mit Tomcat7) verwenden, ist es noch einfacher als die meisten anderen. Ich bevorzuge dies gegenüber Lullabot, da es sich bei der Installation über Ubuntu eigentlich um einen Dienst handelt, der weniger umständlich ist :)

Installieren Sie Java

apt-get install java7-jdk

Installieren Sie Tomcat

apt-get install tomcat7 tomcat7-admin

Sobald dies erledigt ist, können Sie http://localhost:8080sehen, dass alles richtig läuft.

Hinweis: Es wird empfohlen, den Port auf einen anderen zu verschieben, da 8080 häufig verwendet wird. Wenn du das machen willst, benutze diesen Code dafür!

sudo sed -i s/8080/8983/g /var/lib/tomcat7/conf/server.xml

Konfigurieren Sie Tomcat

  1. Sie möchten tatsächlich ein Benutzerkonto für Tomcat erstellen, damit sich andere Benutzer beim Administrator anmelden müssen (dies sorgt für mehr Sicherheit).

    nano /var/lib/tomcat7/conf/tomcat-users.xml

  2. Fügen Sie dann diese XML-Argumente zwischen die <tomcat-users>Tags ein

    <role rolename="manager-gui"/> <role rolename="admin-gui"/> <user username="!!somename!!" password="!!somepassword!!" roles="manager-gui,admin-gui"/>

  3. Jetzt können Sie Tomcat erneut starten und die Admin-Seite unter anzeigen http://localhost:8983/manager/html

    service tomcat7 restart

Installieren Sie Solr

  1. Lade das neueste ApacheSolr hier herunter (Als ich das schrieb, funktionierte es mit 4.7)

  2. Extrahieren Sie die Dateien in ein Verzeichnis

Kopieren Sie Solr-Bibliotheksdateien

Als Nächstes möchten wir die Bibliotheksdateien zum Tomcat-Bibliotheksverzeichnis hinzufügen. Hinweis: Sie können auch Symlinks verwenden, wenn Sie dies vorziehen. Um jedoch zu verstehen, wohin alles führt, habe ich mich dafür entschieden, diese direkt in den Verzeichnissen abzulegen

cp ~/solr-4.x.x/example/lib/ext/* /usr/share/tomcat7/lib/

Es kann eine gute Idee sein, die Java-Bibliotheken auch aus solr / dist / solrrj-lib / * zu kopieren.

cp ~/solr-4.x.x/dist/solrj-lib/* /usr/local/tomcat7/lib/

Kopieren Sie die Solr WAR-App-Datei

cp ~/solr-4.x.x/dist/solr-4.x.x.war /var/lib/tomcat7/webapps/solr.war

Richten Sie den Drupal ApacheSolr-Core ein

  1. Wir müssen zuerst die Beispielkonfigurationsdateien von ApacheSolr kopieren.

    mkdir -p /var/lib/tomcat7/solr cp -r ~/solr-4.x.x/example/solr/collection1/conf /var/lib/tomcat7/solr/

  2. Holen Sie sich als nächstes die neueste Version des Apachesolr-Moduls https://drupal.org/project/apachesolr und entpacken Sie es

    tar xvf apachesolr-*.tar.gz

  3. Synchronisieren Sie die apachesolr-Konfigurationsdateien (für Drupal) mit Ihrer solr-Konfiguration

    rsync -av apachesolr/solr-conf/solr-4.x/ /var/lib/tomcat7/solr/conf/

Hinweis: Ich habe einen Fehler gefunden, bei dem ApacheSolr aufgrund doppelter Fehler nicht gestartet werden konnte. Ich habe das hier gemeldet, also solltest du dir die Lösung hier ansehen , da ich sie zum Zeitpunkt des Schreibens nicht zum Laufen bringen könnte!

  1. Erstellen Sie eine Kerndefinitionsdatei, um Apache Solr mitzuteilen, welche Kerne verfügbar sind.

    nano /var/lib/tomcat7/solr/solr.xml

  2. Fügen Sie den folgenden Code in diese Datei ein

    <?xml version="1.0" encoding="UTF-8" ?> <solr persistent="false"> <cores adminPath="/admin/cores"> <core name="!!yourcorename!!" instanceDir="!!yourcoredir!!" /> </cores> </solr>

Drupal-Kernverzeichnis erstellen

Dadurch wird ein neuer Kern in Ihrem System mit diesem Namen erstellt. Wenn Sie weitere hinzufügen möchten, können Sie diesen und den obigen Schritt einfach wiederholen.

mkdir /var/lib/tomcat7/solr/!!yourcoredir!!
cp -r /var/lib/tomcat7/solr/conf /var/lib/tomcat7/solr/!!yourcoredir!!/

Lass es uns leben

  1. Du bist auf der letzten Strecke !! Lassen Sie uns Tomcat7 in den Schlaf versetzen

    service tomcat7 stop

  2. Ändern Sie nun die Berechtigungen für das Tomcat-Verzeichnis

    chown -R tomcat7:tomcat7 /var/lib/tomcat7

  3. Starten Sie es erneut

    service tomcat7 start

Es ist live

Sie sollten in der Lage sein, http://localhost:8983/solreine neue verfügbare Core-Instanz zu sehen! Jetzt können Sie Drupal so konfigurieren, dass es darauf hinweist.

Hinweis: Ihr neuer Core befindet sich unter http://localhost:8983/solr/!!yourcorename!!, um im Drupal ApacheSolr-Modul verwendet zu werden.

Kredit und Requisiten gehen an Pacoup

shaneonabike
quelle
1
Toller Führer. Unter "Tomcat konfigurieren" fehlt die XML-Datei unter Schritt 2: "Dann fügen Sie diese XML-Argumente zwischen die Tags ein" ... keine XML-Datei angegeben.
Jordan Magnuson
Hmm, es ist da, aber Sie können es vielleicht wegen Ihres Browsers nicht sehen? Lassen Sie mich versuchen, die Ausgabe zu ändern, um das zu beheben
shaneonabike
Eigentlich habe ich gerade überprüft und ich verwende die richtigen Code-Tags?
Shaneonabike
Siehe Screenshot: i.imgur.com/s1jlunf.png
Jordan Magnuson
Ich habe es repariert. XML-Code muss zwischen ``
Jordan Magnuson
1

Änderungen an Solr 4 wurden in der Problemwarteschlange erörtert: https://drupal.org/node/1676224

Das Problem enthält eine Reihe von Links zu Sandbox-Sites und Lernprogrammen.

Ursula
quelle
1

So wird es in der Drupal-Community-Dokumentation ( Installieren von Solr unter Tomcat ) beschrieben:

CentOS

In dieser Anleitung wird davon ausgegangen, dass Sie Tomcat bereits installiert haben. Wenn Sie dies nicht tun, ist es wahrscheinlich einfacher, WHM zu verwenden und es dort zu installieren und Apache neu zu erstellen. Zeigen und Klicken ist das, was ich sage.

Sobald Sie Tomcat installiert haben, können Sie die Installation überprüfen, indem Sie folgende Schritte ausführen:

domain.com:8080 

Sie sollten die Standard-Tomcat-Seite sehen. Wenn nicht, fragen Sie jemanden um Hilfe. Wenn Sie dies nicht tun, verletzen Sie die nächste Person, die das gleiche Problem hat. Wenn wir nicht helfen wollten, wären wir nicht Open Source.

Laden Sie eine Kopie von Solr herunter. Wenn Sie nicht wissen, wo Sie es bekommen, googeln Sie es.

Suchen Sie Ihre Tomcat-Installation, um die Dinge jetzt und in Zukunft einfacher zu machen

$ locate tomcat

Erstellen Sie einen Softlink wie folgt:

ln -s /my/tomcat/location /tomcat

Wenn Sie es richtig gemacht haben, sollten Sie in der Lage sein, einfach

$ /tomcat

in sshd und komm in dein verzeichnis.

Ich werde das /libVerzeichnis für mein Beispiel verwenden. Wenn Sie noch keine haben, erstellen Sie sie mit dem mkdir /libBefehl.

  1. Solr an temporären Speicherort extrahieren, ich erhalte nur die Zip-Datei von Solr-Spiegeln.

    $ unzip apache-solr-1.4.1.zip /lib/

    Bauen Sie Ihre Solr

    $ cd /lib/solr
    $ ant dist (you should see it building something.)
  2. Benenne deine Kriegsdatei um, um die Benutzung zu vereinfachen.

    $ cd /lib/apache-solr-1.4.1
    $ cd dist
    $ mv apache-solr-1.4.1.war solr.war  (this just renames it without asking you)
    $ dir  (check to make sure it worked. you should see solr.war)
  3. Kopieren solr.warnach/lib/solr/example

    $ cp solr.war /lib/solr/example
    $ cd /lib/solr/example
    $ dir  (verify that the solr.war is in the directory, you should also see the familiar start.jar file there)
  4. Kopieren Sie die XML-Dateien von Ihrem Apachesolr-Speicherort. Normalerweise wird es sein:

    $ cp /home/YOUR_NAME/www/modules/apachesolr/*.xml /lib/solr/example/solr/conf</code>
  5. Erstellen Sie eine XML-Datei in Tomcat, um sie anzuweisen, Solr beim Start von Tomcat auszuführen

    $ cd /tomcat
    $ cd /conf/Catalina/localhost
    $ vi solr.xml

    Fügen Sie dies in Ihre neue Datei ein:

    <code>
    <?xml version="1.0" encoding="utf-8"?>
    <Context docBase="/solr/example/solr.war" debug="0" crossContext="true" >
       <Environment name="solr/home" type="java.lang.String" value="/solr/example/solr" override="true" /> 
    </Context>
    </code>

    Die beiden Werte, die Sie anpassen sollten, sind Context :: docBase (um auf Ihre WAR-Datei zu verweisen) und Environment :: value (um auf Ihr SOLR-Verzeichnis zu verweisen). Beachten Sie, dass sich in diesem Beispiel die WAR-Datei im SOLR-Verzeichnis befindet. Dies ist ein feines Muster, dem Sie folgen müssen.

    {Drücken Sie Escapeund dann :w} und dann {Drücken Sie die Escape-Taste und dann :q}

  6. Starten Sie Tomcat mit WHM neu. Es ist unter Restart Services. Dann gehen Sie hier:

    yourdomainname.com:8080/solr/admin

    Möglicherweise erhalten Sie folgende Fehlermeldung:

    false in null ----------------------------------------------- -------------- java.lang.RuntimeException: java.io.IOException: Das Verzeichnis / usr / share / solr / data / index kann unter org.apache.solr.core.SolrCore nicht erstellt werden .initIndex (SolrCore.java:398) um ​​org.apache.solr.core.SolrCore. (SolrCore.java:546) um ...

    Keine Panik. Ich gatcha!

    Geh solrconfig.xmlnochmal zu

    $ cd /solr/example/solr/conf
    $ vi solrconfig.xml

    und ändere diese Zeile:

    <!--<dataDir>${solr.data.dir:./solr/data}</dataDir>-->

    zu

    <dataDir>${solr.data.dir:./solr/data}</dataDir>

    Starten Sie Tomcat erneut und gehen Sie hier:

    yourdomainname.com:8080/solr/admin

    TUN SIE DAS, WENN SIE NICHT BEREITS HABEN:

    Gehen Sie zu Ihrer schema.xml-Datei in /lib/solr/example/solr/conf:

    $ vi schema.xml

    Fügen Sie dies in den folgenden Abschnitt ein <field>:

      <field dest="host" source="host"/>
      <field dest="segment" source="segment"/>
      <field dest="boost" source="boost"/>
      <field dest="digest" source="digest"/>
      <field dest="tstamp" source="tstamp"/>

    Speichern Sie es und beenden Sie {Drücken Sie die EscapeTaste) :w(Drücken Sie Enter) und dann (Drücken Sie die EscapeTaste) :q(Drücken Sie Enter)

    Wenn Sie Nutch verwenden, klicken Sie hier und installieren / konfigurieren Sie nutch .

Informationen zu Apachesolr in Drupal 6.x finden Sie unter: Einrichten von Drupal 6.x mit Apache Solr unter Tomcat6 und Ubuntu .

Kenorb
quelle
1

Alle solr-Versionen sollten mit Drupal funktionieren, solange Sie ein Modul haben, das dies unterstützt.

Das Apachesolr- Modul enthält beispielsweise Konfigurationsdateien für: Solr: 3.x und 4.x.

Für das Search API Solr Search- Modul finden Sie die Konfigurationsdateien für Solr: 3.x, 4.x und 5.x, sodass dies kein Problem sein sollte.

Wie man Solr installiert, ist eine andere Sache. Es gibt viele Möglichkeiten, dies zu tun. Einige Beispiele unten.

Installation

OS X

Am einfachsten ist es, den neuesten Apache Solr mit Homebrew zu installieren, zB:

brew install solr
ln -sfv /usr/local/opt/solr/*.plist ~/Library/LaunchAgents
brew services start solr # Or just: solr start

Auf die jetzt installierte Solr-Instanz kann unter folgender Adresse zugegriffen werden : http: // localhost: 8983 /

Debian / Ubuntu

Der einfachste Weg ist die Installation von Solr über apt:

sudo apt-get install solr-tomcat

über Marionette

Verwenden Sie Puppet Manifest, um Solr zu installieren. Hier ist ein solr4-tomcat.pp Beispiel.

Manuell (4.x oder 5.x)

$ VER=4.10.4 # Solr version.
$ TOMCAT_BASE=/var/lib/tomcat7
$ sudo apt-get install tomcat7 tomcat7-admin
$ sudo sed -i.org 's|port=\"8080\"|port=\"8983\"|g' /etc/tomcat?/server.xml
$ sudo mkdir -p /opt/solr/home/collection1/conf /opt/solr/data
$ cd /opt/solr
$ curl -s http://archive.apache.org/dist/lucene/solr/$VER/solr-$VER.tgz | sudo tar zxvf -
$ sudo cp -v /opt/solr/solr-$VER/dist/solr-$VER.war $TOMCAT_BASE/webapps/solr.war
$ sudo cp -v /opt/solr/solr-$VER/example/lib/ext/*.jar /opt/solr/solr-$VER/dist/solrj-lib/*.jar /opt/solr/solr-$VER/example/resources/log4j.properties $TOMCAT_BASE/webapps/solr/WEB-INF/lib
$ curl -s http://ftp.drupal.org/files/projects/search_api_solr-7.x-1.x-dev.tar.gz | sudo tar zxvf -
$ sudo cp -v search_api_solr/solr-conf/4.x/* home/collection1/conf/
$ sudo /etc/init.d/tomcat7 restart

Überprüfen Sie, ob es funktioniert: http: // localhost: 8983


Siehe auch:

Kenorb
quelle