Neuerungen in WoltLab Suite 5.5: Überarbeitung der Suchfunktion

Photo by Hadija Saidi on Unsplash

Suchformular und Suchergebnisse in einer Seite kombiniert

Die bisherige Suche war strikt zwischen der Eingabe über ein Formular und der Anzeige der Ergebnisse auf einer separaten Seite getrennt. Diese historische Trennung bietet heutzutage keinen Vorteile mehr und bietet Nutzenden nicht die in der übrigen Software gewohnte Interaktivität. Dies zeigte sich auch bei der nachträglichen Änderung der Suchparameter, bei dem Nutzende auf ein relativ umfangreich und schwer zu überblickendes Formular zurückgeleitet wurden.

Die überarbeite Suche vereint diese beiden Seiten nun in einer komfortablen und benutzerfreundlichen Oberfläche. Es ist nun deutlich einfacher, eine bestehende Suche zu verfeinern und die neu gewonnene Interaktivität liefert fast nahtlos die Ergebnisse, wie man es von typischen Suchmaschinen gewohnt ist. Über geschickte Kategorisierungen und Interface-Elemente bleibt die Vielfalt der Parameter zum Eingrenzen erhalten ohne überladen zu wirken.

Suchformular mit Suchergebnissen zum Begriff "Datenbank"

Dynamisches Laden von Ergebnissen

Die Suchergebnisse werden beim Absenden im Hintergrund vom Server abgefragt und nahtlos unterhalb der Suchmaske angezeigt. Die Navigation zwischen den Ergebnisseiten erfolgt ebenfalls direkt auf der Seite und erlaubt jederzeit den Wechsel zwischen den Ergebnissen. Der Zugriff auf die Suchmaske bleibt dabei uneingeschränkt erhalten.

Ein entscheidender Nachteil der bisherigen Lösung für die Suchergebnisse war die unzureichende Weitergabe der Ergebnisse in Form eines Links. Dies war einer der zentralen Kritikpunkte, die wir mit dieser Überarbeitung beseitigt haben: Alle Parameter einer Suche sind nun Bestandteil der URL. Es ist damit möglich, eine spezifische Suche mit einer anderen Person durch eine Weitergabe des Links zu teilen, der Link ist zeitlich unbegrenzt gültig.

Die Ermittlung der Suchergebnisse erfolgt dabei pro Person separat: Bei der Weitergabe des Links werden nur die Eingaben in der Suchmaske vorgegeben, nicht aber die Ergebnisse selbst. Dies stellt sicher, dass in den Ergebnissen keine Treffer enthalten sind, die der anderen Person unzugänglich sind.

URL für Suchanfrage

Flood-Control für Suchfunktion

Die Suchfunktion stellt naturgemäß einen hohen Arbeitsaufwand für den Server dar und wird damit zu einem potenziellen Angriffspunkt, um eine Website mit vielen Suchanfragen zu überlasten. Als Schutz gab es hier bisher die Möglichkeit, die Captcha-Funktion für die Nutzung der Suchfunktion zu aktivieren. Dies stand allerdings nur für nicht angemeldete Personen zur Verfügung und bedeutete gleichzeitig auch einen gewissen Komfortverlust, da die Nutzung der Suchfunktion so erheblich umständlicher wurde.

Wir haben uns deshalb dazu entschlossen, die Nutzung der Captcha-Funktion in der Suchfunktion zu streichen. Stattdessen führen wir mit WoltLab Suite 5.5 eine Flood-Control für die Such-Funktion an. Die Flood-Control protokolliert, wie oft eine Person die Such-Funktion innerhalb einer bestimmten Zeit verwendet hat und blockiert automatisch weitere Aufrufe, wenn eine ungewöhnlich hohe Zahl festgestellt wurde.

Neue Suchoptionen und Kontext-bezogene Darstellung von Ergebnissen

Neue Suchoptionen für Foren-Suche

Die Suchparameter für Foren-Beiträge wurden verfeinert und es stehen nun mehr Optionen zur Filterung der Ergebnisse zur Verfügung. Es kann gezielt nach dem jeweiligen Startbeitrag eines Themas oder nach als „offiziell“ markierten Beiträgen gesucht werden. Darüber hinaus gibt es einen zusätzlichen Filter um die Suche auf Themen zu beschränken, die eine hilfreichste Antwort enthalten, um so gezielt nach Lösungen für ein Problem suchen zu können.

Filteroptionen für die Suche in Foren-Beiträgen

Überarbeitung Galerie-Suchergebnisse

Mit WoltLab Suite 5.5 haben wir die Flexibilität der Suchergebnisse verbessert, um unterschiedliche Inhalte besser darstellen zu können. Getreu dem Motto "ein Bild sagt mehr als tausend Worte" stellt die Suchfunktion bei einer Suche in der Galerie die Ergebnisse direkt als Bilder an.

Suchergebnisse aus der Galerie

Überarbeitung Filebase-Suchergebnisse

Die Filebase bietet sich, vergleichbar zu Galerie, für eine angepasste Darstellung an, um die Inhalte besser präsentieren zu können, die reine Darstellung als Text für die Suchergebnisse hat sich eher als unpraktisch erwiesen. Bei der Suche nach Dateien in der Filebase wird nun das gewohnte Layout aus der Datei-Auflistung verwendet, um die Treffer in einem vertrauten Layout darzustellen.

Suchergebnisse aus der Filebase

Modernisierung der Elasticsearch-Integration

Die Suche über Elasticsearch bietet viele Vorteile gegenüber den beschränkten Möglichkeiten der MySQL-basierten Suche und wird aus diesem Grund von uns auch in allen Tarifen im Cloud-Hosting ohne Zusatzkosten eingesetzt. Die Anbindung wurde von uns fortlaufend gepflegt und an neuere Versionen von Elasticsearch angepasst, dabei haben wir unseren Fokus jedoch primär auf die Kompatibilität mit verschiedenen Versionen gelegt. Mit WoltLab Suite 5.5 haben wir die technische Basis unserer Anbindung überarbeitet, um besser von den Neuerungen von Elasticsearch profitieren zu können und gleichzeitig Erfahrungen im jahrelangen Einsatz einfließen zu lassen.

Asynchrone Verwaltung des Suchindex

Neue Inhalte oder Änderungen an bestehenden Inhalten wurden bislang sofort zur Verarbeitung an Elasticsearch übermittelt. Dies hat in der Praxis zur Folge, dass es bei langsamen Servern zu einer erhöhten Ladezeit beim Absenden von Inhalten kam. Darüber hinaus haben Verbindungsprobleme, etwa bei über das Internet verbundenen Elasticsearch-Servern, teilweise dazu geführt, dass Änderungen am Suchindex nicht erfolgt sind.

Um die Zuverlässigkeit der Pflege des Suchindex zu erhöhen setzen wir mit WoltLab Suite 5.5 auf einen lokalen Zwischenspeicher, dessen Inhalt alle paar Minuten gesammelt an Elasticsearch übermittelt wird. Dies erlaubt sowohl eine effizientere Verarbeitung über die „Bulk-API” von Elasticsearch als auch eine signifikant höhere Fehlertoleranz gegenüber Verbindungsproblemen.

Bessere Verarbeitung von Sucheingaben

Vergleichbar mit typischen Suchmaschinen bietet auch Elasticsearch eine reichhaltige Syntax um Abfragen an den Suchindex zu formulieren. Nutzende erhalten damit vielfältige Möglichkeiten, um beispielsweise bestimmte Begriffe in den Treffern abzuwerten oder gänzlich auszuschließen. Die Interpretation dieses Sucheingabe wurde bislang von unserer Anbindung gehandhabt und in einem einheitlichen Format an Elasticsearch übermittelt. Mit der neuen Version wird dieser Teil direkt an Elasticsearch ausgelagert und konnte in allen Tests mit nochmals besseren Ergebnissen überzeugen.

Kommentare 8

Mich würden Details zum Punkt „Bessere Verarbeitung von Sucheingaben“ interessieren. Gibt es da Beispiele, was genau jetzt inwiefern besser funktioniert?

Dies bezieht sich im Wesentlichen auf die Analyse der Sucheingabe, insbesondere (aber nicht ausschließlich!) bei der Verwendung von Operatoren, beispielsweise + oder ". Die Quantifizierung fällt allerdings etwas schwerer aus, denn es ist kein drastischer Unterschied, sondern primär eine Verbesserung im Detail. Eine bessere Interpretation der Suchanfrage bedeutet in letzter Konsequenz auch bessere Ergebnisse und sei es nur eine andere Gewichtung, wodurch der ideale Treffer weiter oben platziert wird.

Moin zusammen,

bietet die neue Suchfunktion die Möglichkeit die Ergebnisse zu markieren?

Mir fehlt nämlich noch die Massenverarbeitung nach Keyword. Die Suche wäre meiner Meinung nach die einzig sinnvolle Funktion, Themen und Beiträge nach Keyword zu bestimmen und diese dann von dort aus verschieben, löschen, ect. zu können.

Weitergabe von Suchen als Permalink ist super. :)

Was uns in unserem Forum schon immer am meisten stört / fehlt an der Suchfunktion ist die Möglichkeit, die Suchergebnisse bei Anzeige als Themen nach Datum des letzten Beitrags zu sortieren. Das ist essentiell, wenn man viele sehr alte Themen hat, die relativ häufig mit neuen Inhalten versehen werden, aber auch schon mal bei einigen Wochen Inaktivität so weit abrutschen, dass man sie gern schnell durch die Suchfunktion finden würde (das sind in unserem Fahrradforum bspw. Galerie- oder Schrauberthemen zu einem bestimmten Themenbereich). Sucht man nun nach einem Schlagwort aus dem Titel, kommen oft erstmal unzählige andere später gestartete Themen vor dem gesuchten...

Kann man denn dann endlich innerhalb benutzerdefinierter Felder suchen?

Danke für die Umsetzung und Verbesserung der Suche.
Gerade die neue Funktion "Vereinfachte Weitergabe von Links zu Suchergebnissen" freut mich sehr. Über diese neue Funktion kann man User mittels Link aufzeigen was für Suchmöglichkeiten und Filter gibt für eine gute Suche.

Auch "Suchformular und Suchergebnisse in einer Seite kombiniert" finde ich ein weiterer Fortschritt und deutliche Verbesserung.

So ganz habe ich die Gestaltung der neuen Suchfunktion nicht verstanden. Wenn ich also auf die Lupe klicke, erscheint dann das Gezeigte als Pop-Up oder wird man direkt auf die Suchseite weitergeleitet oder wie muss ich mir das vorstellen?

Zudem würde mich interessieren ob man die asynchrone Verwaltung des Suchindex von Elasticsearch auch deaktivieren kann?

Die Lupe funktioniert wie bisher, die Detailsuche (wie hier vorgestellt) ist regulär über die "Erweiterte Suche" aufrufbar.

Bezüglich der Verwaltung des Elasticsearch-Index gibt es keine Einstellung, dies ist fester Bestandteil der Implementierung, denn diese bietet auch Vorteile beim lokalen Betrieb.