Installation und Konfiguration von Tomcat 6 und Apache Solr für Drupal 6 unter Ubuntu

solr_logo_rgb_small.png tomcat.gif

Installation Tomcat6 und Apache Solr

Installationsvarianten

Zwar gibt es mehrere Möglichkeiten Tomcat 6 oder Apache Solr zu installieren , wir werden jedoch die Repository Variante verwenden um auch von den regelmäßigen automatischen Updates profitieren zu können.

Tomcat und Solr lassen sich denkbar einfach direkt
aus dem Repository installieren.

Was wird benötigt:

  1. Tomcat6 als Servlet-Container
    sudo apt-get install tomcat6
    sudo apt-get install tomcat6-admin
  2. Apache Solr Search Server
    sudo apt-get install solr-tomcat

Wenn die Installation funktioniert hat antwortet Tomcat 6 unter http://localhost:8080 mit It works ! Solr unter http://localhost:8080/solr/ mit Welcome to Solr!

Konfiguration Tomcat 6

Bei der Tomcat Installation werden standardmäßig keine Rechte für den Tomcat Manager angelegt. Um also Tomcats GUI Manager verwenden zu können müssen wir daher noch die passende Rolle und einen entsprechenden User anlegen.

Folgende Zeilen müssen hierzu in der Apache Tomcat 6 Konfigurationsdatei eingetragen werden

sudo vim etc/tomcat6/tomcat-users.xml

<tomcat-users>
<role rolename="manager-gui"/>
<user username="tomcat" password="tomcat" roles="manager-gui"/>
</tomcat-users>


Nun Tomcat 6 neu starten

sudo service tomcat6 restart

thumb_tomcat-manager.png

Jetzt können wir unter http://localhost:8080/manager/html den Manager starten. Normalerweise kann man an dieser Stelle z.B. Java Applets deployen, für unseren Fall jedoch dient der Manager eigentlich nur zur Übersicht unserer Solr Installationen. Beim Aufruf der URL http://localhost:8080/manager/html erscheint nun der Manager Screen, und wir sehen schon unsere Solr Installation.

Drupal spezifische Anpassung

Damit wir Solr auch mit Drupal verwenden können braucht es noch
einige Anpassungen der Solr Konfiguration.

Wir legen zuerst folgendes Verzeichnis an:

/opt/solr-tomcat/solr_cocomore_drupal_demo/

Hier erzeugen wir die Datei

sudo vim solr_cocomore_drupal_demo.xml
mit folgendem Inhalt:

<Context path="/solr" docBase="/usr/share/solr" debug="0" privileged="true" allowLinking="true" crossContext="true">
   <!-- make symlinks work in Tomcat -->
   <Resources className="org.apache.naming.resources.FileDirContext" allowLinking="true" />
   <Environment name="solr/home" type="java.lang.String" value="/opt/solr-tomcat/solr_cocomore_drupal_demo/" override="true" />
</Context>

und die Datei

sudo vim solr.xml
mit folgendem Inhalt:

<solr persistent="false" sharedLib="lib">
  <cores adminPath="/admin/cores">
    <core name="cocomore_drupal_demo" instanceDir="cocomore_drupal_demo">
      <property name="dataDir" value="cocomore_drupal_demo/data" />
    </core>
  </cores>
</solr>

Nun erzeugen wir den ersten Core unter:

sudo mkdir /opt/solr-tomcat/solr_cocomore_drupal_demo/cocomore_drupal_demo

Jetzt kopieren wir die aktuellen Solr standard Konfigurationsdateien

cp -R /etc/solr/conf /opt/solr-tomcat/solr_cocomore_drupal_demo/cocomore_drupal_demo/conf

Folgende Dateien müssen im conf Verzeichnis vorhanden sein
damit Apache Solr funktionsfähig ist.

  • solrconfig.xml
  • schema.xml
  • elevate.xml
  • mapping-ISOLatin1Accent.txt
  • protwords.txt
  • stopwords.txt
  • synonyms.txt

WICHTIG!
Die rot markierten Dateien ersetzen wir nun durch die beim Apachesolr Drupal Modul mitgelieferten Versionen

Jetzt müssen wir noch Tomcat mitteilen wo unsere Solr Konfiguration zu finden ist hierzu setzen wir einen Symlink.

sudo ln -s /opt/solr-tomcat/solr_cocomore_drupal_demo/solr_cocomore_drupal_demo.xml  
			/etc/tomcat6/Catalina/localhost/solr_cocomore_drupal_demo.xml 

Achtung final noch die korrekten Rechte setzen

chmod -R 775 /opt/solr-tomcat/solr_cocomore_drupal_demo/
chown -R root:tomcat6 /opt/solr-tomcat/solr_cocomore_drupal_demo/

thumb_tomcat-manager-drupal.png

Beim Aufruf der URL http://localhost:8080/manager/html ist nun unsere Solr Installation (solr_cocomore_drupal_demo) hinzu gekommen.

Drupal 6 Apache Solr Module

Folgende Module müssen in eurem Drupal Projekt installiert und aktivert werden:

  • Apache Solr Search Integration, Download unter:

  • http://drupal.org/project/apachesolr

  • Apache Solr Multilingual, Download unter:

  • http://drupal.org/project/apachesolr_multilingual

Bevor wir das Apache Solr Search Modul aktiveren können müssen wir noch zusätzlich den SolrPhpClient in den Modulpfad vom apachesolr Modul installieren, am besten mit

svn checkout -r22 http://solr-php-client.googlecode.com/svn/trunk/ SolrPhpClient
falls ihr kein SVN installiert habt könnt ihr euch den SolrPhpClient auch von verschiedenen anderen Quellen runterladen. Hierzu bitte die readme Datei welche dem Modul beiliegt lesen.

  • Search (falls noch nicht aktiviert)
  • Apache Solr framework
  • Apache Solr search
  • Apache Solr multilingual

Konfiguration Drupal 6 Apache Solr Modul

Die Settings finden wir unter:

admin/settings/apachesolr

thumb_d6-solr-settings1.png

Da die Standardeinstellungen des Moduls passen sollten, konnte eine Verbindung zu Solr bereits hergestellt werden. Siehe Abb. Leider ist es nicht die korrekt da wir nicht den Standard Solr index verwenden wollen, sondern unseren eigenen Core.

Richten wir nun unseren Core ein

Der Core besteht aus Instance und Corename:

/solr_cocomore_drupal_demo/cocomore_drupal_demo 
Einzutragen unter Solr Path:

thumb_cocomore_drupal_demo_solr_settings1.png

Wenn die Einstellungen gemacht wurden sollten wir unseren Core ansprechen können. Siehe Abb.

Weitere Einstellungen - Drupal 6 Apache Solr Modul

Number of items to index per cron run:

Ein guter Wert ist hier 50.

Bei höheren Werten kann es zu je nach Projektgröße zu Problemem beim Cronlauf kommen.

Unter Advanced Configuration

thumb_cocomore_drupal_demo_solr_settings2.png

machen wir nun die Solr Suche zur Standard Suche.

Search index

thumb_cocomore_drupal_demo_solr_settings3.png

Search index
Unter search index sehen wir nun wie viele Dokumente bereits im Index enthalten sind. Bisher noch keine, klar. Wir sehen auch die Anzahl der noch zu sendenden Inhalte. Der Index wird beim Cron Lauf erzeugt. Starten wir den Cron!

Search index

thumb_cocomore_drupal_demo_solr_settings4.png

Bitte beachten erst nach der Delay Time des Servers tauchen die neuen Inhalte im Index auf. Im Beispiel 2 min.

Search fields - Field biases

thumb_cocomore_drupal_demo_solr_settings5.png

Unter Search Fields können wir angeben mit welcher Gewichtung die Felder behandelt werden sollen, je höher die eingestellte Nummer desto höher ihre Behandlung im Suchergebnis.

Content Bias Settings

thumb_cocomore_drupal_demo_solr_settings6.png

Hier haben wir die Möglichkeit Inhaltstypen komplett von der Aufnahme in den Index auszuschließen oder z.B. deren Gewichtung anzuheben.

Der Apache Solr ist nun einsatzbereit!