SOLR für TYPO3

Was ist SOLR?

SOLR ist eine Stand-Alone Suchmaschinen-Software, die als Open Source von der Apache Software Foundation entwickelt wird. MIt SOLR können Betreiber großer Websites den Besuchern eine leistungsstarke Suchfunktion anbieten. Dazu zählen neben der reinen Volltextsuche, das Autovervollständigen, Rechtschreibekorrekturen, Berücksichtigung von Synonymen und Wortstamm-Varianten, Rich-Content-Support(Suche in PDFs, Word-Dateien, etc.), Text-Highlightning sowie Facettierung. Des weiteren können bestimmte Bereiche der Website unterschiedlich gewichtet werden. So können z.B. die aktuellsten News-Beiträge am stärksten berücksichtigt werden.

Um SOLR nutzen zu können, benötigen Sie:

  • eine eigene SOLR-Instanz, die auf einem im Internet erreichbaren Server läuft
  • die TYPO3-Extension solr
  • für die Suche in Dateien(PDF etc.) die Extensions tika und solr_fal

Mehr Informationen zu SOLR unter: http://lucene.apache.org/solr/


TYPO3 Standardsuche indexed_search

Für kleine Webseiten bietet TYPO3 eine integrierte Suchfunktion: indexed_search. DIese ist einfach einzurichten und funktioniert auch zuverlässig. Die Suche indiziert die Seiten, wie sie in Frontend angezeigt werden, entweder über einen Crawler, oder einfach, wenn die Seiten im Frontend angezeigt werden. Normale Seiten, Einzelansichten von Extensions wie News, auch eigene Extensions sind kein Problem, denn indiziert wird, was auf der Webseite angezeigt wird. Die indizierten Wörter und Begriffe werden in Tabellen der Datenbank gespeichert. 

Für kleine Webseiten ist dies eine gute Möglichkeit, ohne großen Aufwand eine Suche zu implementieren, die alles findet, was auf der Webseite angezeigt wird.

Bei umfangreicheren Webseiten allerdings bremst indexed_search das System recht schnell aus. Die Tabellen können beim intensiven EInsatz von Veranstaltungsplugins, News etc. schnell sehr groß werden.

Zudem fehlen Funktionen, die es ermöglichen, die Suche benutzerfreundlicher und die Suchergebnisse aussagekräftiger zu machen: die Suche nach Kriterien (facettierte Suche), Unterstützung bei falsch geschriebenen Suchbegriffen (Meinen Sie ...), das Definieren von Stopwörtern (und, ist...), die in der Suche nicht berücksichtigt werden oder eine Gewichtung der Suchergebnisse (z. nach Aktualität oder Art des Eintrags) sind nicht möglich.

Grundsätzlich ist die Standardsuche von TYPO3 - da Sie eine reine Volltextsuche ist - nicht in der Lage, nach mehreren Begriffen zu suchen. Eine Suchanfrage "TYPO3 Agentur" würde daher nur die Stellen finden, in denen der Text exakt in der Reihenfolge steht. Seiten mit den Begriffen "Agenturen für TYPO3", "TYPO3 Internetagenturen" oder "Webagentur für TYPO3" würden zum Beispiel nicht berücksichtigt werden.


Technische Einrichtung der SOLR-Extension für TYPO3

Für die Einrichtung der TYPO3 Extension solr ist ein SOLR-Server erforderlich. Viele Provider bieten SOLR-Server - ähnlich wie das normale Webhosting - für eine monatliche Pauschale an.

Einrichten der Extension

Die Extension wird über den Extensionmanager in TYPO3 installiert und die Verbindung mit dem Solr-Core eingerichtet. Die verschiedenen Module für die Indizierung werden dann in Typoscript eingerichtet. 

Für mehrsprachige Webseiten wird für jede Sprache ein eigener Kern eingebunden, so dass die Konfiguration von Solr auf die jeweiige Sprache abgestimmt wird.

Für die Indizierung der Texte auf den Seiten und die News-Extension ist die Unterstützung in den Typoscript-Templates der Extension eingerichtet. Im HTML-Template müssen die Marker 

TYPO3SEARCH_begin und TYPO3SEARCH_end

eingebunden sein und die Indizierung auf der Webseite in Typoscript aktiviert sein.

config.index_enable = 1

Für alle andere Extensions wird die Indizierung per Typoscript konfiguriert. Die Suche geht direkt über die Datenbanktablellen. Dabei kann auch die Gewichtung der Suchergebnisse zwischen Seiten und  Extensions untereinander, aber auch die Gewichtung von verschiedenen Feldern wie Titel, Abstract und Text verändert werden und sogar die Gewichtung einzelner Tags angepasst werden. 

Die Indizierung erfolgt fortlaufend über einen Cronjob. Bei Änderungen an den Datensätzen wird der entsprechende Datensatz automatisch neu in die Index Queue gestellt, so dass die Suchergebnisse immer aktuell bleiben. Dabei werden zuerst die neusten Datensätze indiziert, so dass die Suche von Anfang an gute Ergebnisse liefert. 

Suchmaske und Ergebnisanzeige

Die Suchmaske bietet neben den Suchfeld verschiedene Unterstützungen. So kann über die facettierte Suche ausgewählt werden,dass z.B. nur Suchergebnisse aus den News oder Veranstaltungen angezeigt werden.

Schon bei der Eingabe des Suchbegriffs können mit Ajax Suchbegriffe vorgeschlagen werden, so dass der Benutzer den für ihn besten Begriff auswählen kann. Auch bei den Suchergebnisse kann ein Vorschlag für eine alternative Suche dem Benutzer helfen, seine Suchanfrage zu verbessern.

Die letzten oder besonders häufig eingegebene Suchbegriffe können angezeigt werden, so dass der Benutzer mit einem Klick die gewünschte Information erhält.

Die Suchergebnisse zeigen neben dem Titel der Seite auch mit einer Grafik an, wie relevant das Suchergebnis für den gesuchten Begriff ist. Im Teaser-Text wird der Suchbegriff hervorgehoben, nicht relevante Sätze werden ausgeklammert.So kann der Besucher leichter erkennen, ob die Seite wirklich den Suchbegriff im gewünschten Zusammenhang enthält. 


Indizierung von Dateien

Auch die Indizierung von pdf-Dateien auf dem Server ist mit Solr möglich. Hierfür werden die Extensions tika und solrfal eingebunden und konfiguriert. Dabei ist es natürlich wichtig, dass die Metadaten (Titel und Beschreibung) der pdf-Dateien richtig gesetzt sind, damit die Dateien in den Suchergebnissen vernünftig angezeigt werden. Auch die Indizierung der Dateien läuft über einen Cronjob.