Bitte beachten Sie, dass "haupia" mit Version 2.4.0 in "SmartSearch" umbenannt wurde. In allen Fällen, in denen es zu Unstimmigkeiten oder Verwirrung kommen könnte, sollte "SmartSearch" als der korrekte und aktuelle Begriff betrachtet werden. Dies ist möglicherweise in alten Skripten und Beispielen nicht berücksichtigt, daher entschuldigen wir uns für etwaige Unannehmlichkeiten und hoffen, dass die Fälle, in denen Korrekturen erforderlich sind, minimal sein werden.

1. Einleitung

Eine Suche auf einer Internetseite ist besonders wichtig, da heutzutage immer mehr Informationen online verfügbar sind und Websites immer größer und komplexer werden. Eine effektive Suchfunktion ermöglicht es den Nutzenden, schnell und einfach die gewünschten Informationen zu finden, ohne sich durch unzählige Seiten und Links zu klicken. Es ist auch eine effiziente Möglichkeit, Zeit zu sparen und die User Experience zu verbessern, da es den Nutzenden ermöglicht, direkt zu den relevanten Inhalten zu gelangen, ohne sich mit unnötigen Informationen befassen zu müssen. Darüber hinaus kann eine gute Suchfunktion auch dazu beitragen, dass eine Website als userfreundlich und professionell wahrgenommen wird, was wiederum das Vertrauen der Nutzenden erhöht und dazu beitragen kann, dass sie sich länger auf der Website aufhalten und öfter wiederkommen. Insgesamt ist eine effektive Suche auf einer Internetseite ein wichtiger Faktor für eine positive User Experience und den Erfolg einer Website.

Die Suchfunktion auf der Internetseite auch als Marketinginstrument genutzt werden, um den Besuchern personalisierte Angebote und Empfehlungen zu unterbreiten. Wenn ein Besucher beispielsweise nach einem bestimmten Produkt sucht, kann das Unternehmen ihm ähnliche oder ergänzende Produkte empfehlen oder ihm spezielle Angebote unterbreiten, um seine Kaufbereitschaft zu erhöhen. Zudem können bestimmte Treffer besser in den Suchergebnissen platziert werden, um die Besuchenden der Internetseite auf bestimmte Inhalte aufmerksam zu machen.

Die Suche gibt dem Unternehmen wertvolle Einblicke in die Bedürfnisse und Interessen der Besucher. Durch die Analyse der Suchbegriffe und -ergebnisse können Unternehmen Trends und Muster identifizieren und ihre Website-Inhalte entsprechend anpassen, um den Bedürfnissen der Zielgruppe besser gerecht zu werden. Auf diese Weise kann die Website auch als Marktforschungsinstrument dienen.

Insgesamt kann eine gut gestaltete Suchfunktion auf der Internetseite nicht nur dazu beitragen, die User Experience zu verbessern und die Conversion-Rate zu erhöhen, sondern auch wertvolle Einblicke in die Bedürfnisse der Zielgruppe liefern und als Marketinginstrument zur Akquisition und Bindung von Kundenunternehmen genutzt werden.

Die SmartSearch bündelt Anforderungen, die an die Suchfunktion einer Online-Präsenz gestellt werden: 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 Nutzende somit auf der Webseite.

Gleichzeitig stellt sie Bearbeitenden durch das integrierte SmartSearch-Cockpit eine Web-Oberfläche bereit, die ohne IT-Kenntnisse verwendbar ist. Bearbeitende 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 Bearbeitende im Backend Suchergebnisse priorisieren und gewichten sowie ausgewählte Inhalte zu vordefinierten Suchanfragen ausgeben lassen.

1.1. Konzept

Die SmartSearch-Funktionalität, z. B. Einstellungen zu Userberechtigungen und Gruppenberechtigungen, kann ohne technisches Vorwissen im Browser-basierten SmartSearch-Cockpit verwaltet werden.

1.1.1. Datengenerator

Im SmartSearch-Cockpit können Sie Datengeneratoren anlegen, um durchsuchbare Daten zu erfassen.

Es gibt drei Typen von Datengeneratoren:

  • Web: Der Webcrawler verbessert die Durchsuchbarkeit einer existierenden Website.

  • XML: Der XML-Datei-Crawler beschleunigt die Verarbeitung von Daten, wenn sie als XML-Dateien vorliegen.

  • API: Unterstützt bei der Übergabe von Daten von einer selbst entwickelten Anwendung oder dem FirstSpirit-Modul SmartSearch Connect an eine API.

Mithilfe eines Prepared Search können Sie das Suchergebnis konfigurieren, z. B. durch das Bündeln von Inhalten aus mehreren Datengeneratoren in einem Prepared Search.

1.1.3. Adaptable Result

In einem Adaptable Result können Sie die Suchergebnisse aktiv verändern, um z. B. bestimmte Suchergebnisse weiter oben in der Liste anzuzeigen, oder um Suchergebnisse aus der Liste auszuschließen.

1.1.4. Synonyme und Stoppwörter

Sie können ein Synonym festlegen, um einen Begriff mit der Suche zu verknüpfen, der im Website-Text nicht vorkommt, aber sinngemäß mit einem anderen Suchbegriff verbunden ist. Synonyme können z. B. aus häufigen Suchanfragen abgeleitet werden.

Sie können Stoppwörter verwenden, um bestimmte Begriffe bei der Suchanfrage zu ignorieren. Eine Liste mit typischen Stoppwörtern für die einzelnen Sprachen wird bereitgestellt und kann erweitert werden.

1.2. 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 kundenunternehmensseitig 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 Kundenunternehmens 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 Admin-Oberflä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.3. Technische Voraussetzungen

Der Einsatz der SmartSearch besitzt die folgenden technischen Voraussetzungen:

  • Java 11 als Java Development Kit (JDK) für die Ausführung von ZooKeeper und Solr

  • ZooKeeper in der Version 3.4.10

  • Solr in der Version 8.11.2 im Cloud-Modus

  • SmartSearch in der neuesten Version, die zur Ausführung unbedingt Java 21 benötigt

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

Obwohl Java 11 die Standardanforderung für ZooKeeper und Solr ist, arbeitet SmartSearch mit Java 21. Um dies zu berücksichtigen, müssen sowohl Java 11 als auch Java 21 auf dem System vorhanden sein. Allerdings erfordert nur SmartSearch Java 21.

Um SmartSearch mit Java 21 laufen zu lassen, führen Sie es mit der ausführbaren Datei Java 21 aus. Stellen Sie sicher, dass Java 11 das Standard-JDK des Systems für alle anderen Operationen bleibt. Sie können den SmartSearch-Server starten, indem Sie den Pfad zur ausführbaren Java 21-Datei wie folgt angeben:

/pfad/zu/java21/bin/java -jar Server.jar -server -Dhaupia.master.profile=STANDALONE -Dfile.encoding=UTF-8

Mit diesem Vorgehen können Sie Java 21 für die Ausführung des SmartSearch-Servers verwenden, ohne die für Java 11 konfigurierte Standard-Java-Umgebung zu ändern, wodurch die Kompatibilität mit anderen Abhängigkeiten gewährleistet wird.

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 User- und Gruppenverwaltung über einen LDAP-Server realisiert, können die Zugangsdaten abweichen.

Nach der validen Eingabe wird der User 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 kundenunternehmensseitige 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 eines Felds erscheint eine Liste der diesem Feld zugehörigen Werte, für die Facette gibt es folgende Konfigurationsmöglichkeiten:

  • Filter: Mit diesem Eingabefeld können Facettenwerte gesucht werden.

  • Nur gewichtete Werte anzeigen: Durch das Anwählen dieser Checkbox werden nur Facettenwerte angezeigt, die gewichtet wurden.

  • Gewicht: Mit einem klick auf das Feld Gewicht kann einem Facettenwert eine Gewichtung zugeordnet werden. Diese Zahl stellt einen Multiplikator des Scores dar und kann zwischen 0.00 und 9.99 liegen. Empfohlen ist ein Wert zwischen 0.00 und 2.00. Ergebnisse, die diesem Facettenwert angehören, erhalten eine Gewichtung und werden entsprechend höher oder niedriger in den Suchergebnissen gereiht.

  • 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.