Solr Konfiguration: Unterschied zwischen den Versionen
Reimer (Diskussion | Beiträge) |
|||
Zeile 17: | Zeile 17: | ||
'''Hinweis:''' | '''Hinweis:''' | ||
− | Solr bietet eine eigene, recht komplexe Analyse-Oberfläche mit. Diese | + | Solr bietet eine eigene, recht komplexe Analyse-Oberfläche mit. Diese kann über den Button 'Solr-GUI' erreicht werden. |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
== Solr-Konfiguration == | == Solr-Konfiguration == |
Version vom 18. Juli 2017, 07:41 Uhr
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.
Allgemeine Informationen zur Konstellation und Funktionsweise einzelner Module oder des IESWebnode werden auch im IES-Ökosystem beschrieben:
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 kann über den Button 'Solr-GUI' erreicht werden.
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
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.
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
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
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
Für alle Links die geprüft werden, wenn der hacken Check Links im Crawler gesetzt ist, können hier Ausnahmen festgelegt werden.
Externe Inhalte haben die zusätzlichen Reiter:
Start-URL's
Hier gibt man einen oder mehrere Url's als Startpunkte an.
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())) { ... }