Dies ist eine alte Version des Dokuments!
Inhaltsverzeichnis
Suche
Für die Suche kommt die TYPO3-Extension „solr“, die einen Apache Solr-Suchindex nutzt, zur Anwendung. Sowohl die Extension als auch der Solr-Server sind extrem flexibel und gut konfigurierbar.
Folgende Elemente werden indexiert:
- Seiten: Werden über den normalen Solr-Indexer-Scheduler-Task indexiert. Änderungen an Seiten und Inhalten werden über DataHandler-Hooks erkannt und bei einer Änderung wird das entsprechende Element zur Neuindexierung/Löschung terminiert.
- Dokumente: Im Inhalt verlinkte Dokumente werden von der Extension „solrfal“ (nur für EAP2-Kunden zugänglich, visol ist EAP2-Kunde) indexiert. Bei der Indexierung wird über SignalSlot der Tika-Dienst der Extension „tika“ aufgerufen, welcher die Metadaten und den Inhalt der Datei ausliest und in der Tabelle sys_file_reference speichert (Feld „tika_content“). Der Inhalt dieses Feldes wird ebenfalls in die Datenbank geschrieben, sodass eine Volltextsuche aller Dokumente möglich ist. Der Titel aus sys_file_reference wird in ein separates Feld „falTitle_stringS“ gespeichert und wird - falls gesetzt - anstelle des Dateinamens ausgegeben.
- Personen: Die proprietäre Extension useruniluaddress importiert täglich alle Adressen aus einem von der Uni automatisiert auf den Server (/home/www-data/externaldata) gestellten XML-File. Ist dieses File gültig, werden via DataHandler bestehende Adressen aktualisiert, entfernte gelöscht und neue hinzugefügt, was auch die entsprechenden Aktionen für den Solr-Index triggert. Für Personen gibt es eine spezielle Suchausgabe, die direkt Telefonnummer, E-Mail-Adresse und Links auf Visitenkarte und Website anzeigt. Personen werden mit einem boostQuery priorisiert, sodass z.B. bei der Suche nach „Portmann“ das Personen-Resultat Lukas Portmann vor Seiten mit Portmann im Text erscheint.
Für die Eingrenzung der Suche werden Facets verwenden. Die Facetten stehen bereits im Suchformular zur Verfügung:
Lehrveranstaltungssuche
Die Lehrveranstaltungssuche ist eine externe Suche. Sie steht aber bereits in den Facets zur Verfügung. Per JavaScript wird vor dem Abschicken der Suche geprüft, ob die entsprechende Facet angewählt wurde. Falls dem so ist, wird der Query String an die Lehrveranstaltungssuche in einem neuen Tab übergeben.
Seiten von der Suche ausschliessen
Berechtigung: Web-Administrator
Seiten, die nicht in der Suche erscheinen sollen, können für die Suche in den Seiteneigenschaften deaktiviert werden. Die Funktion heisst Bei Suchmaschinen und Seitensuche indexieren. Das Deaktivieren der Checkbox bedeutet auch, dass diese Seiten gleichzeitig auch für externe Suchmaschinen wie z.B. Google als „nicht zu indexierende Seiten“ markiert werden:
Um dies für mehrere Seiten rekursiv zu machen, gibt es im Bereich Web > Funktionen ein Modul:
Seiten von der Suche ausschliessen (Neu v11)
Berechtigung: Web-Administrator
Seiten, die nicht in der Suche erscheinen sollen, können für die Suche in den Seiteneigenschaften deaktiviert werden. Das bewirkt, dass die Seiten nicht in der Suche auf unilu.ch und auch bei Suchmaschinen nicht mehr angezeigt werden:
Um dies rekursiv für einen ganzen Teil des Menübaums zu machen, kann folgende Funktion verwendet werden:
to do: Bild ergänzen
Bilder von der Suche ausschliessen
Siehe Anleitung
Setup von Solr & Troubleshooting
Da Nine keinen Solr-Server in Version 4.8 bieten kann, wurde der Solr-Server mit dem Benutzer www-data selber installiert und muss auch selber betrieben werden. Insofern ist bei technischen Problemen von Nine auch keine Unterstützung zu erwarten.
Setup
Da die mit der TYPO3-Solr-Extension mitgelieferten Installations-Skripts auf Administrator-Rechte überprüfen, mussten sie angepasst werden. Das komplette Setup ist in Github versioniert: https://github.com/phluzern/unilu-solr-tomcat (Master-Branch: Konfiguration für Unilu/phlu-eduweb2. Es gibt noch einen Branch phlu.ch für PHLU/phlu-eduweb3.)
Zugriff auf die Web-Oberfläche
Tomcat läuft auf Port 8080. Dieser Port ist von aussen nicht zugänglich, was aus Sicherheitsgründen auch vorteilhaft ist. Als Nebeneffekt ist aber die Solr-Weboberfläche nicht zugänglich. Dieses Problem kann umgangen werden, indem man einen SSH-Tunnel zum Server aufbaut und diesen im Browser (am besten in einem Zweitbrowser) als Proxy nutzt. Der SSH-Tunnel ist im Prinzip eine normale Verbindung zum Server mit einer Port-Forwarding-Konfiguration:
Diese Verbindung wird dann mit den normalen SSH-Zugangsdaten geöffnet.
Nun muss der Browser konfiguriert werden, diese Verbindung (im Beispiel auf Port 2048) zu nutzen. Konfiguration in Firefox:
Sobald diese Konfiguration aktiv ist, kann die Solr-Weboberfläche unter http://localhost:8080/solr geöffnet werden.
Wichtiger Hinweis: Hier gemachte Änderungen beziehen sich nur auf die aktuelle Ausführung von Tomcat/Solr. Bei einem Neustart gehen die Änderungen verloren. Permanente Konfigurationsänderungen müssen in den Konfigurations-Dateien vorgenommen werden.
Solr-Server starten
Wurde der Solr-Server beendet, z.B. aufgrund eines „killall java“ (s.o.), muss er neu gestartet werden. Für Shutdown und Startup gibt es Skripts:
~/solr-tomcat/tomcat/bin/shutdown.sh ~/solr-tomcat/tomcat/bin/startup.sh
Dass Solr wieder geht, kann anschliessend im Backend verifiziert werden:
Der Solr-Server wird bei jedem System-Neustart automatisch gestartet. Dafür sorgt folgender Eintrag in der Crontab:
# Start Solr/Tomcat on Reboot @reboot /home/www-data/solr-tomcat/tomcat/bin/startup.sh
Logging-Konfiguration
Die mitgelieferte Logging-Konfiguration führt zu sehr vielen und grossen Logs, da für den produktiven Betrieb nicht relevante Informationen (Log-Level INFO) geloggt werden. Der Log-Level wurde daher global auf WARN gestellt und das TransactionLog, welches für jede neu indexierte Adresse ein neues Log-File erstellte, ganz deaktiviert.
Die Logging-Konfiguration ist zu finden unter
/home/www-data/solr-tomcat/tomcat/lib/log4j.properties
Tika überlastet Server
Tika extrahiert Inhalt und Metadaten aus allen Dokumenten, die auf der Website verknüpft sind. Offenbar kann Tika leaken; vermutlich, wenn es ein besonders grosses File oder ein fehlerhaftes File zu lesen versucht. Der Java-Prozess benötigt dann rund 100% CPU über längere Zeit, was den Server langsam macht.
Durch ein „killall java“ werden alle Java-Prozesse beendet, damit allerdings auch der Solr-Server, der neu gestartet werden muss.