Solr Konfiguration

Aus SiteparkWiki
Zur Navigation springen Zur Suche springen

In diesem Dokument werden technischen Zusammenhänge und Funktionen zur Steuerung der Volltextsuche über das Solr-Modul erläutert.

Das Solr-Modul ist ein Modul im IES, welches die Software Solr von Apache nahtlos integriert. Weiterhin wird mit dem Modul ein eigener Crawler bereitgestellt, der für die Indizierung der Webinhalte zuständig ist. Für die Suche auf dem Solr-Index und die Ausgabe der Ergebnisse werden entsprechende PHP-Klassen bereitgestellt.

Solr-Installation

Um die Volltextsuche über das Solr-Modul zu realisieren muss auf den entsprechenden Webserver der sog. IES-Webnode installiert werden. Beim IES-Webnode handelt es sich um einen Java-Applikations- Server auf Basis des Jetty 9. Dieser dient als Basis für erweiterte Funktionen auf dem Webserver.

IES-Webnode

Allgemeine Informationen zur Konstellation und Funktionsweise einzelner Module oder des IESWebnode werden auch im IES-Ökosystem beschrieben:

IES-Ökosystem

Wenn die Lizenz entsprechend konfiguriert ist, ist der Download der notwendigen Module direkt über IES-Admin möglich. Mit der Installation des Solr-Moduls im IES werden die notwendigen Dateien automatisch auf die konfigurierten IES-Webnodes installiert. Damit sind die technischen Voraussetzungen erfüllt.

Hinweis:

Solr bietet eine eigene, recht komplexe Analyse-Oberfläche mit. Diese ist über den Jetty des IESWebnode auf dem Webserver verfügbar, wenn entsprechende Proxy-Konfigurationen in der Apache- Konfiguration des Webservers vorgenommenen werden:

Integration des IES in den Apache

Der Zugriff sollte allerdings auf lokale Adressen o.ä. eingeschränkt werden. Der Aufruf erfolgt über die URL des Webservers mit dem Pfad

/ies-webnode/solr/.

Der Login ist „api“, dass Passwort ist auf dem Server in der Datei „config/realm.properties“ im Home- Verzeichnis des IES-Webnode. Die Funktion wird auf der Website von Solr beschrieben.

Solr-Konfiguration

Die Konfiguration der Indizes erfolgt über das Webinterface von IES-Admin. Klicken Sie hierzu auf die URL des Solr-Modules.

/ies/solr/

Für den Login verwenden Sie bitte die Zugangsdaten von IESAdmin.


Übersicht

Datei:SolrÜbersicht.png

In der Übersicht sehen Sie nun alle konfigurierten Indices. Hier können auch weitere Indices angelegt werden. Ein Doppenklick öffnet den Bearbeitungsdialog. Alle hier vorgenommenen Angaben werden automatisch an die IES-Webnodes übertragen.
Diese führen dann jeweils lokal die Indizierung durch crawlen der Website durch. Über die Toolbar kann dieser Prozess auch manuell initiiert werden.
In der Spalte Status wird der vom Crawler erstellte Rückgabewert angezeigt.


start
Startzeitpunkt der Indizierung
time
Dauer des Crawlprozesses
agents
Anzahl der Threads für die Indizierung
fetched
Anzahl der geladenen Seiten
errors
Anzahl der Fehler (HTML-Syntax, HTTP-Errors, etc.)
bytes
geladenes Datenvolumen während des Crawlprozesses
bps
Daten pro Sekunde


Details

Über den Button Crawl-Result öffnet sich ein neuer Tab mit einer Liste der durchlaufenen Urls. Standardmäßig ist ein Häkchen oben gesetzt, sodass nur Fehler und Warnungen angezeigt werden.


Konfiguration

Per Doppelklick auf den Index, oder bei klicken auf den Index bearbeiten Button bei ausgewähltem Index, öffnen sie einen Tab zur Konfiguration.

SolrKonfiguration.png

Im linken Feld wird der Name des Index und die sog. Core-ID konfiguriert. Diese wird später für den Zugriff auf die Daten verwendet. Das XML-Schema ist zwingend auszuwählen. Weiterhin muss der entsprechende Publikationsbereich konfiguriert werden. Dadurch wird die Verknüpfung zwischen Index und Publisher festgelegt.

Hinweis: Dieser Publisher muss seinerseits mit dem entsprechenden Webnode verknüpft sein.

Darunter können Quellen hinzugefügt werden. Durch klicken auf das Dreieck können sie festlegen ob die Quelle Interne oder Externe Inhalte haben soll. Für Intern gibt es folgende Reiter:


Allgemein

Enthält Felder für ID und Name.

Crawler

SolrCrawler.png

Hier wird das Verhalten des Crawlers bestimmt. Die Anzahl der parallelen Threads wird festgelegt.
Der Timeout legt die Zeit fest, die ein einzelner URL-Aufruf maximal benötigen darf. Die Angabe erfolgt in Millisekunden. Bedenken Sie hier bitte, dass größere Downloads auch länger benötigen. Die Option „Check Links“ aktiviert den im Crawler implementierten Link-Checker. Entsprechende fehlerhafte URLs werden im Crawler-Result angezeigt.
Die Mindestanzahl an gecrawlten Seiten kann als Sicherheitsfunktion verstanden werden. Findet ein Durchlauf nicht mind. die hier konfigurierte Anzahl an Seiten, gilt das Ergebnis als invalide. Das passiert z.B. wenn der Webserver technische Probleme hat und nur eine Fehlerseite zurückliefert. Der Index wird dann nicht entfernt.
Die Einstellung „Maximale Dateigröße“ legt fest bis zu welcher Größe Dateien indiziert werden. Der Agent-Name des Crawlers kann hier ebenfalls bestimmt werden. Hier sollten Sie einfach den Standard-Wert SITEPARK-NUTCH belassen.
Ist für den Zugriff auf die konfigurierten URLs ein Proxy notwendig, muss dieser hier ebenfalls konfiguriert werden.


Synchronisation

SolrSynchronisation.png

Im Bereich Synchronisation kann festgelegt werden, ob der Index automatisch neu aufgebaut werden soll.
Hier ist zum einen eine regelmäßig Neuindizierung mit einem bestimmten Intervall möglich. Diese Funktion wird i.d.R. nur für besondere Indices verwendet und sollte nicht gewählt werden.
Weiterhin gibt es noch die direkte Ad-hoc-Synchronisation. Diese ist ein Haupt-Feature des IES, bei dem der IES die Webnodes eines Publishers über Änderungen an Dateien oder ganzen Ordnerstrukturen mitteilt. Dieser triggert das Solr-Modul, welches automatisch die relevanten Strukturen im Dokumentenbaum erneut indiziert.
Damit sind alle redaktionellen Änderungen direkt auch für die Volltextsuche verfügbar.
Diese Funktion kann nicht verwendet werden, wenn die Webnodes über mehrere Cluster-Nodes verteilt werden, da sonst nur ein Index aktualisiert werden würde.


URL-Filter

In diesem Bereich werden die Regeln für gültige und ungültige URLs in Form von regulären Ausdrücken bestimmt. Alle URLs die vom Crawler geladen werden, werden gegen alle hier definierten Regeln geprüft. Soll eine externe Domain in den Index ausgenommen werden, so muss neben der Start-URL auch hier ein entsprechender Filter den Zugriff erlauben.


Link-CheckerFilter

Externe Inhalte haben die zusätzlichen Reiter:


Start-URL's

URL-Normalizer

Damit URLs nicht doppelt im Index stehen (z.B. /bibliothek und /bibliothek/ und /bibliothek/index.php) müssen diese nach den crawlen „normalisiert“ werden. Damit erkannt werden kann, dass es sich um die gleiche URL handelt.
Der Welcome-Normalizer behandelt die Start-Seiten wie index.php, die i.d.R. auch im Apache eingestellt sind.
Der Standard-Normalizer behandelt doppelte oder fehlerhafte URL-Pattern und korrigiert diese.
Der Url-Normalizer erlaubt es alle nicht explizit genannten URL-Parameter zu ignorieren.

Anpassungen an den Templates

Damit die Solr-Suche optimal arbeitet und alle gewünschten Funktionen wie z.B. Facetten bereit stehen, müssen die Dateien auf dem Webserver über entsprechende HTML-Head-Felder verfügen.

Hier sind i.d.R. Template-Anpassungen notwendig.

Insbesondere werden bei Ihnen folgende META-Felder ausgewertet und bei der Suche priorisiert (besonders „geboostet“). Im Feld „content“ wird der gesamte Inhalt der Seite aufgenommen/indiziert. Die Felder „sp_source“ oder auch „sp_rubrik“ dienen häufig für Facettierung. Aber auch andere Felder sind möglich.

  • title
default-boost: 5.0
  • description
default-boost: 1.0
  • keywords
default-boost: 3.0
  • url
default-boost: 0.3
  • content
default-boost: 0.3
  • sp_category
  • sp_title
  • sp_rubrik
  • sp_source
  • sp_date
  • sp_language (default sollte „unknown“ sein, damit die Suche die Seite in jedem Fall findet)
  • sp_contentType (default: „content“)


Suche über die Solr-API

Für die Durchführung von Suchen auf Basis eines Solr-Index wird über das Solr-Module eine PHP-Api zur Verfügung gestellt. Die hier genannten Informationen stehen auch im Wiki unter

Anwenden der Solr-Suche mit Hilfe der PHP-API

zur Verfügung.

Optimierungen

Anpassungen der Crawler-Konfiguration

Die umfangreichsten Optimierungen lassen sich durch Feinjustierung an der Konfiguration des Solr- Core realisieren. Hier können z.B. bestimmte u.U. recht umfangreiche Datentypen ausgenommen werden. Auch Applikationen innerhalb der Website können über URL-Filter übergangen werden.

Eine weitere Optimierungsoption bieten die URL-Parameter. Diese sollten über den URL-Normalizer auf das notwendige Maß reduziert werden, damit identische URLs nur einmal in den Index kommen. Eine geringere Crawler-Tiefe kann u.U. zusammen mit mehreren Start-URLs ebenfalls für eine vereinfachte Indizierung sorgen.

Die Optimierungen sind stark abhängig von der jeweiligen Website.

search_noindex

Damit Daten, die nicht für die Suche relevant sind, weil Sie wie z.B. die Navigation oder der Footer auf allen Seiten stehen, nicht in den Index aufgenommen werden, können diese über die HTML-Tags

<!--search_noindex--> <!--/search_noindex-->

gekapselt werden. Sollen Links weiter verfolgt werden, die Text-Inhalte aber ignoriert werden, kann z.B. so verfahren werden:

<a href="/rubric-a/index.php"><!--search_noindex-->Die Rubrik A<!--/search_noindex--></a>

So muss z.B. auch die Login-Maske für die Personalisierung „ausgeblendet“ werden.

title-Tag für den Crawler optimieren

Weil der Title-Tag von besonderer Bedeutung für die Suche ist, sollte dieser auch entsprechend sinnvoll gesetzt werden. Die Ausgabe kann für die Volltextsuche einfach über PHP gesteuert werden. So kann z.B. stets „Stadt Goldenberg“ am Anfang des Title-Tags stehen. Für die Suche wird aber darauf verzichtet, da die Ergebnisse stets den Title ausgeben.

Eine Abfrage kann z.B. wie folgt erfolgen:

if (array_key_exists('X-SP-Crawler', getallheaders())) {
...
}