1. Einleitung

Die SmartSearch bündelt Anforderungen, die Kunden an die Suchfunktion einer Online-Präsenz stellen: Eine intuitiv bedienbare, hochperformante Suchlösung, die auf umfangreichen Webseiten einsetzbar ist und relevante Ergebnisse liefert. Sie bietet sowohl eine hohe Trefferqualität als auch einen optimalen Suchkomfort und bindet Kunden somit auf der Webseite.

Gleichzeitig stellt sie Redakteuren durch das integrierte SmartSearch-Cockpit eine Web-Oberfläche bereit, die ohne IT-Kenntnisse verwendbar ist. Redakteure aus Fach- und Marketingabteilungen werden so in die Lage versetzt, Suchergebnisse auf der Webpräsenz zu steuern und zu überwachen. Das Cockpit stellt dafür Statistiken, Filter sowie Analysefunktionen bereit und erlaubt die Indizierung verschiedenster Datentypen (zum Beispiel XML, Audio, Video, Medien) aus unterschiedlichen Datenquellen. Mithilfe individualisierter Trefferlisten können Redakteure im Backend Suchergebnisse priorisieren und gewichten sowie ausgewählte Inhalte zu vordefinierten Suchanfragen ausgeben lassen.

1.1. Architektur

Die Funktionalitäten der SmartSearch werden über eine Architektur verschiedener Komponenten realisiert (vgl. Abbildung Architektur).

Bei diesen Komponenten handelt es sich um:

  • ZooKeeper

  • Solr

  • SmartSearch

architecture
Abbildung 1. Architektur

Das Zusammenspiel der Komponenten erfolgt immer nach dem folgenden Schema:

  • Für die Erstellung des Suchindex muss die SmartSearch zunächst die notwendigen Daten erfassen. Dafür greift sie kundenseitig auf die zu erfassenden Informationen zu, die in Form von Webseiten, Portalen oder Datenbanken vorliegen können. Darüber hinaus stellt eine REST-Schnittstelle die Möglichkeit bereit, den Suchindex von außen mit weiteren Daten zu befüllen.

  • Danach normalisiert der SmartSearch-Server die erfassten Daten und überträgt sie an den Solr-Server. Dieser nimmt die Daten entgegen und persistiert sie in einem Index.

  • Die Abfrage der Daten erfolgt äquivalent: Der SmartSearch-Server nimmt die Anfrage entgegen, modifiziert sie und leitet sie dann an den Solr-Server weiter. Dieser antwortet mit einem Suchergebnis, das der SmartSearch-Server über die REST-Schnittstelle an die Endanwendung des Kunden zurückliefert.

  • Das SmartSearch-Cockpit ist losgelöst von den übrigen Komponenten zu sehen. Es dient der Verwaltung des SmartSearch-Servers und bietet dafür eine einfache, webbasierte Administrationsoberfläche an. In dieser sind unter anderem Suchlösungen erstell- und konfigurierbar.

  • Die Speicherung der im SmartSearch-Cockpit vorgenommenen Konfigurationen erfolgt neben den Solr-Konfigurationsdaten auf dem ZooKeeper-Server.

Die Kommunikation nach außen ist durch HTTPS geschützt, zwischen den Komponenten erfolgt sie per HTTP.

1.2. Technische Voraussetzungen

Der Einsatz der SmartSearch besitzt die folgenden technischen Voraussetzungen:

  • Java 11 oder höher

  • ZooKeeper in der Version 3.4.10

  • Solr in der Version 8.6.3 im Cloud-Modus

  • die SmartSearch in der aktuellsten Version

ZooKeeper und Solr sind nicht in der Auslieferung enthalten. Sie müssen daher vor der Installation in der angegebenen Version heruntergeladen werden.

2. SmartSearch-Cockpit

Das SmartSearch-Cockpit ist ein Bestandteil der SmartSearch. Es dient der Backend-seitigen Verwaltung der durch die SmartSearch erfassten Daten und bietet dafür eine einfache, webbasierte Oberfläche an. Diese gliedert sich in die Bereiche Konfiguration, Analyse, Daten und System, die über das Menü zu erreichen sind. Der Button mit dem Weltkugel-Icon stellt darüber hinaus einen Sprachumschalter zwischen Deutsch und Englisch bereit.

Das SmartSearch-Cockpit ist standardmäßig unter der folgenden URL erreichbar:

Der erste Aufruf des Cockpits muss mit dem Master-Admin erfolgen. Er wird beim initialen Start des SmartSearch-Servers automatisch mit den Daten aus der application.yml erzeugt.

Ist die Benutzer- und Gruppenverwaltung über einen LDAP-Server realisiert, können die Zugangsdaten abweichen.

Nach der validen Eingabe wird der Benutzer automatisch auf das Dashboard des Cockpits weitergeleitet. Eine erneute Authentifizierung ist erst nach einer expliziten Abmeldung oder nach dem Ablauf einer Sitzung erforderlich.

dashboard
Abbildung 2. SmartSearch-Dashboard

2.1. Konfiguration

Der Bereich Konfiguration gliedert sich in die Untermenüs Prepared Search, Stoppwörter und Synonyme. Diese ermöglichen die Konfiguration der Ausgabe der von der SmartSearch erfassten Daten.

Die nachfolgenden Unterkapitel beschreiben die Untermenüs und die durch sie zur Verfügung gestellten Funktionen.

2.1.1. Prepared Search

Die kundenseitige Erfassung der benötigten Daten erfolgt über die sogenannten Datengeneratoren, die ein Bestandteil des Bereichs Daten sind. Für ihre Verwaltung stellt die SmartSearch die Prepared Searches zur Verfügung. Diese ermöglichen die Optimierung der Suchergebnisse durch die Priorisierung einzelner Daten.

Die Erstellung und Verwaltung der Prepared Searches erfolgt in der gleichnamige Oberfläche, die über den Menübereich Konfiguration  Prepared Search aufrufbar ist.

Der Bereich zeigt eine Liste aller bereits existierenden Prepared Searches und ist initial leer.

Im Cloud-Modus wird in der Liste außerdem die Erreichbarkeit jeder Prepared Search angezeigt.

preparedsearch
Abbildung 3. Prepared Searches

Neue Prepared Search

Für die Erstellung einer neuen Prepared Search existiert eine eigene Ansicht, die per Klick auf den Button Neue Prepared Search aufrufbar ist und sich in die drei Tabs Allgemein, Facetten und Vorschau gliedert.

psEditPage
Abbildung 4. Erstellen einer Prepared Search
Allgemein

Innerhalb des Tabs Allgemein ist zunächst ein Name für die neu zu erstellende Prepared Search anzugeben. Im Cloud-Modus befindet sich neben dem Eingabefeld für den Namen die zusätzliche Checkbox öffentlich Erreichbar. Mit ihr ist die Erreichbarkeit einer Prepared Search definierbar. Die Aktivierung der Checkbox ermöglicht die Abfrage der Prepared Search über das Internet (API Gateway). Ansonsten ist die Prepared Search nur so erreichbar, wie es das Cockpit auch ist.

Die anschließende Selektion beliebig vieler Datengeneratoren in der gleichnamigen Auswahlliste zeigt deren verfügbare Felder. Die initial aktivierte Checkbox Verbose blendet dabei alle technischen Felder ein bzw. aus. Die zusammen mit der Checkbox bereitgestellte Schaltfläche ermöglicht die Gewichtung der ausgewählten Felder.

Die Liste der Feldnamen pro Datengenerator ist gecached. Beim neu Anlegen eines Datengenerators und dessen ersten Durchlauf, kann es einige Minuten dauern, bis die Felder in der Liste auftauchen.

Die ausgewählten Felder lassen sich per Button in die Liste der für eine Suche relevanten Felder übernehmen, die standardmäßig die Felder content,link und title enthält. Eine zuvor definierte Gewichtung wird dabei automatisch jedem dieser Felder zugeordnet.

Die Liste stellt pro Feld die folgenden Konfigurationsmöglichkeiten bereit:

  • Highlight: Mit der Aktivierung dieser Checkbox wird ein Suchwort innerhalb eines Textausschnitts im Suchergebnis hervorgehoben. Die Länge des Textausschnitts ist dabei frei konfigurierbar (siehe unten).

  • Ausgabe: Diese Option definiert, ob das Feld im Suchergebnis sichtbar ist. Im Falle des Links, der lediglich auf das gesamte Dokument verweist, ist dies zum Beispiel möglicherweise nicht gewünscht.

  • Durchsuchen: Damit das zugehörige Feld von der Suche berücksichtigt wird, ist diese Checkbox zu aktivieren.

    Die Deaktivierung der Option Durchsuchen blendet die nachfolgenden Optionen Teiltreffer und Gewichtung für das entsprechende Feld aus.

  • Teiltreffer: Diese Option ermöglicht die Berücksichtigung von Teiltreffern. Ist die Checkbox selektiert, findet die Suche nach Strom beispielsweise auch den Treffer Ökostromanbieter. Das Suchwort muss dabei eine Länge von drei bis zwanzig Zeichen besitzen.

  • Gewichtung: Die Gewichtung bietet die Möglichkeit, für Treffer der ausgewählten Felder eine Priorisierung festzulegen und damit das Suchergebnis zu beeinflussen.

    Der Button mit dem Symbol eines Mülleimers, der für jedes Feld verfügbar ist, erlaubt die Löschung des entsprechenden Felds aus der Liste.

    Der Tab enthält darüber hinaus die folgenden allgemeinen Konfigurationsmöglichkeiten:

  • Treffer pro Seite: Entsprechend ihres Namens gibt diese Schaltfläche die maximale, auf einer Suchergebnisseite dargestellte Anzahl von Treffern an. In Verbindung mit dem URL-Parameter page lässt sich außerdem eine Aufteilung der Suchergebnisse auf mehrere Seiten realisieren.

  • Länge Highlight (in Zeichen): Mithilfe dieser Schaltfläche lässt sich wie zuvor erwähnt die Länge des Textausschnitts definieren, in dem ein Suchbegriff visuell hervorgehoben wird.

  • Sortieren nach: Die Sortierung der Suchergebnisse ist standardmäßig absteigend nach ihrem Score. Ist eine andere Sortierung gewünscht, ermöglicht dieses Texteingabefeld eine entsprechende Anpassung. Dafür ist ein beliebiges Feld anzugeben und durch den Ausdruck ASC für eine aufsteigende oder DESC für eine absteigende Sortierung zu ergänzen.

  • Spellcheck (Trefferzahl kleiner als): Ist die Anzahl der Suchergebnisse kleiner als der an dieser Stelle konfigurierte Wert, erfolgt eine Rechtschreibprüfung und die Suche nach Suchwörtern ähnlicher Schreibweise.

  • Must Match: Für die Suche nach mehreren Begriffen legt die Eingabe dieses Texteingabefelds fest, wie diese zu verknüpfen sind:

    • Der Wert 0 entspricht einer Oder-Beziehung zwischen den verwendeten Suchbegriffen.

    • Der Wert 100% entspricht einer Und-Beziehung zwischen den verwendeten Suchbegriffen.

    • Ein absoluter Wert definiert die Anzahl der Begriffe, die in einem Suchtreffer enthalten sein müssen. Der Wert 2 bei fünf Suchbegriffen besagt beispielsweise, dass zwei der fünf Ausdrücke innerhalb eines Suchergebnisses enthalten sein müssen. Die Werte 2 und 50% sind bei vier Suchbegriffen äquivalent zueinander.

  • Groovy-Skript: Prepared Searches erlauben darüber hinaus die Einbindung eines selbst zu implementierenden Groovy-Skripts. Ein solches Skript ermöglicht zusätzliche Modifikationen des Datenbestands. So lassen sich dem Datenbestand beispielsweise weitere Dokumente hinzufügen oder der bestehende Datenbestand bearbeiten.

Facetten

Facetten bieten die Möglichkeit, Trefferlisten nach Feldern, die in einem Dokument vorhanden sind, einzuschränken. Da sich Facetten immer auf die im Tab Allgemein selektierten Datengeneratoren beziehen, ist der Tab Facetten initial leer.

facets
Abbildung 5. Facetten

Neue Facette

Für die Erstellung einer neuen Facette existiert eine eigene Ansicht, die per Klick auf den Button Neue Facette aufrufbar ist. Dieser ist nur dann aktiv, wenn im Tab Allgemein mindestens ein Datengenerator definiert ist.

Innerhalb des Tabs ist im gleichnamigen Dropdown zunächst ein Feld auszuwählen. Die verfügbaren Felder stammen dabei aus den selektierten Datengeneratoren. Mit der Auswahl des Felds erscheint eine Liste der diesem Feld zugehörigen Werte, für die folgende Konfigurationsmöglichkeiten verfügbar sind:

  • Sortieren nach Trefferzahl | alphabetisch: Diese Option definiert, ob die Werte absteigend nach ihrer Anzahl oder alphabetisch nach ihrem Namen in der Facettenliste dargestellt werden.

  • Werte anzeigen bei Trefferzahl größer als: Mithilfe dieser Option lassen sich Werte, deren Trefferzahl den angegebenen Schwellwert unterschreiten, aus der Facettenliste ausschließen.

  • Mehrfachauswahl möglich: Diese Option erlaubt die Filterung der Suchergebnisliste nach unterschiedlichen Aspekten. So ist die Suche nach einem bestimmten Objekt beispielsweise im Anschluss sowohl auf eine bestimmte Größe als auch auf eine bestimmte Farbe einschränkbar. Die Suche ist dadurch spezifischer und die Suchergebnisliste minimiert.

  • Eigenen Filter exkludieren: Um für die Suche verschiedene Filteroptionen bereitzustellen, darf sich die Auswahl eines Filters nur auf die Suchergebnisliste, aber nicht auf die Filteroptionen beziehen. Andernfalls würden die übrigen Optionen durch die Suche ebenfalls ausgeblendet.

    Existieren für die Facette Sprache beispielsweise die Filteroptionen Deutsch, Englisch und Französisch liefert die Suche bei der Auswahl der Option Englisch nur noch englische Dokumente zurück. Wird der Filter Englisch in diesem Fall nicht exkludiert, zeigt auch die Liste der zur Verfügung stehenden Filter nur noch Englisch an. In diesem Fall ist es nicht mehr möglich, auf einen anderen Filter zu wechseln oder in Zusammenhang mit der vorhergehenden Konfigurationsmöglichkeit eine Mehrfachauswahl zu treffen.

Vorschau

Das Vorschautab ermöglicht die Testung von Prepared Search-Konfigurationen auf einer Vorschauseite. Dazu ist es nicht notwendig, die Prepared Search zu speichern. Sämtliche Einstellungen aus den Tabs Allgemein und Facetten werden direkt für die Suchanfragen übernommen.

Auf der Seite befindet sich ein Eingabefeld für Suchbegriffe. Die Suche nach dem eingegebenen Begriff erfolgt anschließend in der aktuellen Prepared Search mit der zuvor eingestellten Konfiguration und das Vorschautab zeigt die Ergebnisse dieser Suchanfrage an. An jedem Suchergebnis befindet sich ein Button in Form eines nach oben gerichteten Pfeils. Ein Klick auf diesen zeigt unterhalb des Ergebnisses sämtliche Felder an, die in dieser Prepared Search ausgewählt sind.

Um eine neue Facette in die Vorschau zu übernehmen, genügt es, nach dem Anlegen der Facette die Konfiguration mit einem Klick auf OK zu bestätigen. Nach einem Wechsel zurück in das Vorschautab wird noch einmal automatisch mit dem letzten Suchbegriff gesucht und in der Spalte neben den Suchergebnissen erscheinen neue Filtermöglichkeiten. Diese erhalten ihre Namen und Werte aus der zuvor angelegten Facette. Mit der Vorschaufunktion lassen sich ebenfalls Gewichtungen oder Groovy-Skripte testen.

Bereits zuvor angelegte Adaptable Results erscheinen in der festgelegten Reihenfolge in der Vorschau.