Bitte beachten Sie, dass haupia mit Version 2.4.0 in SmartSearch umbenannt wurde. Während wir unsere Dokumentation entsprechend aktualisiert haben, könnten Sie "haupia" dennoch in älteren Code-Beispielen, APIs, Skripten und Konfigurationsdateien vorfinden. In solchen Fällen betrachten Sie bitte SmartSearch als den aktuellen und korrekten Begriff. Wir empfehlen, bei der Umsetzung von Lösungen aus älterer Dokumentation die entsprechenden Anpassungen vorzunehmen.

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 21

  • ZooKeeper in der Version 3.9

  • Solr in der Version 9.7 im Cloud-Modus

  • SmartSearch in der neuesten 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 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.

psPreviewPage
Abbildung 6. Suchanfrage im Vorschautab

Liste bestehender Prepared Searches

Nach der Speicherung und erfolgreichen Erzeugung der Prepared Search wird sie der Liste bestehender Prepared Searches im gleichnamigen Bereich hinzugefügt. Die Liste gliedert sich in zwei Spalten mit den folgenden Informationen:

Name

Die Spalte enthält den Namen der Prepared Search, der während der Erzeugung angegeben wurde.

Letzte Bearbeitung

Die Informationen in dieser Spalte zeigen, wer und wann die letzte Änderung an der Prepared Search vorgenommen hat.

Prepared Search bearbeiten

Der Button mit dem Symbol eines Stifts ermöglicht die Bearbeitung einer Prepared Search. Ein Klick auf ihn öffnet die Detailansicht mit den vorgenommenen Eingaben. Diese lassen sich entsprechend der zuvor beschriebenen Möglichkeiten verändern.

Prepared Search löschen

Der Button mit dem Symbol eines Mülleimers ermöglicht die Löschung einer Prepared Search. Ein Klick auf diesen Button öffnet einen Dialog mit einer Sicherheitsabfrage, mit der die Löschung zu bestätigen ist.

Alternativ besteht über Checkboxen, die in der Übersichtsliste vor jeder Prepared Search sichtbar sind, die Möglichkeit, mehrere Prepared Searches für die Löschung auszuwählen. Der Button Ausgewählte löschen entfernt diese markierten Prepared Searches, nachdem zuvor ebenfalls eine Sicherheitsabfrage bestätigt wurde.

2.1.2. Stoppwörter

Jeder geschriebene Text enthält Artikel, Füllwörter und weitere Begriffe, die für eine Suchabfrage irrelevant und daher zu ignorieren sind. Aus diesem Grund besitzt die SmartSearch für jede der 26 unterstützten Sprachen eine Liste sogenannter Stoppwörter, die sie im Menübereich Konfiguration  Stoppwörter in Form eines Drop-Down-Menüs bereitstellt. Die in diesen Listen enthaltenen Begriffe werden bei der Erfassung der Daten durch die Datengeneratoren ignoriert und nicht in den Suchindex aufgenommen.

Für die Bearbeitung einer Stoppwörter-Liste ist sie zunächst in dem Drop-Down-Menü zu selektieren. Die Oberfläche zeigt daraufhin alle in ihr enthaltenen Stoppwörter an.

stopwords
Abbildung 7. Stoppwörter

Das Feld Neue Stoppwörter hinzufügen ermöglicht die kommaseparierte Eingabe weiterer Stoppwörter, die per Klick auf den Button mit dem Plus-Symbol in die Liste übernommen werden. Die Buttons mit dem Symbol eines Stifts bzw. eines Mülleimers, die pro Stoppwort sichtbar sind, erlauben die Bearbeitung bzw. Löschung eines einzelnen Eintrags der Liste.

Jede Änderung an der selektierten Liste erfordert abschließend eine Speicherung über den Button mit dem Symbol eines Hakens, der neben dem Drop-Down-Menü dargestellt ist. Erst mit diesem Klick erfolgt eine Übernahme der Anpassungen, auch wenn sie zuvor bereits in der Liste sichtbar sind.

Damit die Änderungen an den Stoppwörter-Listen berücksichtigt werden, ist ein erneuter Durchlauf der Datengeneratoren notwendig.

Die gleichzeitige Verwendung von Stoppwörtern und Synonymen für identische Begriffe ist nicht sinnvoll.

Ist zum Beispiel ein Stoppwort Energie gepflegt, so wird eine gleichzeitige Pflege von Synonymen für Energie nicht den gewünschten Ersetzungseffekt haben.

2.1.3. Synonyme und Ersetzungen

Ähnlich zu den Stoppwörtern, mit denen sich irrelevante Begriffe aus dem erfassten Datenbestand herausfiltern lassen, ermöglichen Synonyme und Ersetzungen die Ergänzung spezifischer Bezeichnungen. Im Menübereich Konfiguration  Synonyme gibt es die Möglichkeit in einem Drop-Down-Menü eine Sprache auszuwählen. Darunter befinden sich zwei Reiter für die Eingabe von Ersetzungen und Synonymen. Im ausgewählten Reiter erscheint dann nach erfolgter Sprachauswahl eine Liste von Ersetzungen oder Synonymen zur ausgewählten Sprache. Diese ist initial leer und kann durch das entsprechende Eingabefeld erweitert werden.

Jeder eingegebene Begriff wird beim Speichern zu Kleinbuchstaben konvertiert.

Ersetzungen

Hierbei handelt es sich um eine Liste von Ersetzungen. Jeder Eintrag bildet einen Suchbegriff auf eine Reihe von Wörtern ab. Das Feld Neuen Suchbegriff hinzufügen ermöglicht die Eingabe eines Suchbegriffs. Nach der Bestätigung mit 'Enter' oder einem click auf den Button mit dem Plussymbol erscheint das Wort gemeinsam mit einer leeren Reihe von Ersetzungen in der Liste darunter. Über das Feld Neue Ersetzung hinzufügen lassen sich dem Suchbegriff die entsprechenden Ersetzungen zuordnen.

Es ist auch möglich mehrere, kommaseparierte Begriffe in das Feld Neuen Suchbegriff hinzufügen einzugeben. In diesem Fall wird der erste eingegebene Begriff zum Suchbegriff und die restlichen Wörter werden zu deren Ersetzungen. Ähnliches gilt auch für das Feld Neue Ersetzung hinzufügen.

Nach dem Speichern wird zukünftig eine Suche nach dem eingegeben Begriff ersetzt durch die Begriffe in der dazugehörigen Reihe.

Des Weiteren erlauben die Buttons mit dem Symbol eines Stifts bzw. eines Mülleimers, die pro Suchwort sichtbar sind, die Bearbeitung bzw. Löschung eines einzelnen Eintrags in der Liste.

substitutions
Abbildung 8. Ersetzungen

Synonyme

Hierbei handelt es sich um eine Liste von Synonymreihen. Einträge einer Synonymreihe werden von der Suche als synonym behandelt. Das bedeutet, dass eine Suche nach einem Begriff aus einer Reihe Ergebnisse für alle Begriffe aus der Reihe liefert. Das Feld Neue Synonyme hinzufügen ermöglicht das anlegen einer neuen Reihe. Hier ist es ebenfalls möglich mehrere, kommaseparierte Begriffe einzugeben. In diesem Fall tauchen diese als einzelne Begriffe in einer neuen Synonymreihe in der Liste unterhalb auf.

Ersetzungen, die wie Synonyme funktionieren werden von SmartSearch erkannt und tauchen nach dem Speichern im Reiter Synonyme auf.

Beispiel

Eine Ersetzungliste mit dem Suchwort energie und den Ersetzungen energie und strom sowie dem Suchwort strom und den Ersetzungen energie und strom ist äquivalent zu einer Synonymliste mit den Begriffen energie und strom

synonyms
Abbildung 9. Synonyme

Jede Änderung an der selektierten Liste erfordert abschließend eine Speicherung über den Button mit der Aufschrift "Speichern", der neben dem Drop-Down-Menü dargestellt ist. Erst mit diesem Klick erfolgt eine Übernahme der Anpassungen, auch wenn sie zuvor bereits in der Liste sichtbar sind.

Die gleichzeitige Verwendung von Stoppwörtern und Synonymen für identische Begriffe ist nicht sinnvoll.

Ist zum Beispiel ein Stoppwort Energie gepflegt, so wird eine gleichzeitige Pflege von Synonymen für Energie nicht den gewünschten Ersetzungseffekt haben.

2.2. Analyse

Der Bereich Analyse glieder sich in die Untermenüs Statistiken und Adaptable Results. Sie ermöglichen sowohl die Analyse der getätigten Suchabfragen als auch die manuelle Steuerung der Trefferreihenfolge für einzelne Suchbegriffe.

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

2.2.1. Statistiken

Der Bereich Statistiken ermöglicht die Analyse der Suchanfragen einer spezifischen Prepared Search. Das gleichnamige Feld listet dafür alle bestehenden Prepared Searches auf, aus der die zu analysierende Prepared Search per Checkbox auszuwählen ist.

Alle fünfzehn Minuten erfolgt eine automatische Aktualisierung der zu analysierenden Daten, so dass die Analyse jederzeit auf einem möglichst aktuellen Datenbestand basiert.

Die nachfolgenden Felder dienen der Spezifizierung der zu analysierenden Daten:

  • Das Drop-Down-Menü Anzahl Ergebnisse zeigt an, ob für die Analyse die 10, 25, 50 oder 100 meistgesuchten Suchwörter ausgegeben werden sollen.

  • Die Felder Von und Bis legen den zu berücksichtigenden Zeitraum fest.

  • Das Feld Tags ermöglicht die Anpassung der Statistik durch spezifische Filterkriterien. Sie dienen der Kategorisierung von Suchabfragen und lassen sich während deren Ausführung definieren. Standardmäßig erfolgt die Eingabe der Tags in der Basic-Ansicht, in der sie durch einfaches Anklicken auswählbar sind. Alle ausgewählten Tags sind durch eine Und- bzw. Oder-Verknüpfung miteinander verbunden. Der Button Advanced erlaubt darüber hinaus den Wechsel zu einer komplexeren Eingabe der Tags.

Beispiele zur Nutzung von Tags sind im Abschnitt Tags enthalten.

Ein Wechsel von der Basic- zur Advanced-Eingabe ist jederzeit möglich. Der Wechsel in die andere Richtung ist nur dann durchführbar, wenn sich die eingegebene Filterung in der Basic-Eingabe abbilden lässt.

Der Button Übernehmen führt die Ermittlung der häufigsten Suchwörter aus, die sich anhand der vorgenommenen Konfiguration für die ausgewählte Prepared Search ergeben. Sie werden anschließend als Liste in der Oberfläche angezeigt.

statistics
Abbildung 10. Statistiken

Der Button CSV herunterladen stellt sowohl die definierten Konfigurationsdaten als auch die auf ihrer Basis ermittelten Suchwörter in Form einer CSV-Datei bereit. Sie enthält zusätzlich zu diesen Informationen einen Deeplink und die absolute Summe aller Suchanfragen - mit und ohne Filterung. Der Deeplink ermöglicht den erneuten Download der Datei.

csv stats
Abbildung 11. Statistiken für die folgende CSV-Datei

Die CSV-Datei, welche aus der gezeigten Statistik generiert wurde, beinhaltet den Deeplink (csv deep link) sowie folgende statistische Parameter:

  • Suchbegriffe (string)

  • Suchhäufigkeit (count)

  • Gewählter Zeitraum (start, end)

  • Namen der gewählten Prepared Search (hier Mithras)

  • Anfragesummen mit (total) und ohne (total without filter) Filter.

csv
Abbildung 12. Die CSV-Datei für gezeigte Statistiken

Den in der CSV enthaltenen Deeplink stellt auch der Button Copy to clipboard > Deep Link CSV bereit. Der Button Copy to clipboard > Deep Link Cockpit stellt einen Link bereit, mit dem sich der Bereich Statistiken inklusive der vorgenommenen Konfiguration erneut aufrufen lässt. Auf diesem Weg können sowohl die Einstellungen als auch das auf ihnen basierende Ergebnis Dritten zur Verfügung gestellt werden.

2.2.2. Adaptable Results

Die Speicherung der durch die SmartSearch ermittelten Inhalte geschieht in einer Vielzahl unterschiedlicher Felder. Diesen lässt sich während der Konfiguration einer Prepared Search eine Gewichtung zugeordnen, um sie so unterschiedlich zu priorisieren. Sie erhalten dadurch einen sogenannten Score, der automatisch berechnet wird und jeweils die Reihenfolge einer Suchergebnisliste bestimmt. Die manuelle Steuerung dieser Suchergebnislisten, den sogenannten Adaptable Results, erfolgt im gleichnamigen Bereich.

Es ist ebenfalls möglich, Adaptable Results anzulegen für Suchbegriffe, die keine Ergebnisse liefern.

adaptableresults
Abbildung 13. Adaptable Results

Der Bereich zeigt eine Liste aller bereits bestehenden Adaptable Results, die jeweils der Suchabfrage zu einem Suchwort einer Prepared Search entsprechen.

Adaptable Result anlegen

Für die Erstellung eines neuen Adaptable Results existiert eine eigene Ansicht, die per Klick auf den Button Neue Adaptable Result aufrufbar ist.

newadaptableresult
Abbildung 14. Neues Adaptable Result

Innerhalb der Ansicht ist eine Prepared Search auszuwählen und ein beliebiger Suchbegriff einzugeben, für den die Reihenfolge der Suchergebnisse verändert werden soll. Ein Klick auf den Button Übernehmen deaktiviert die beiden Felder und ermittelt anhand der Angaben die zugehörige Ergebnisliste, die in Form einer Tabelle angezeigt wird. Der Button Zurücksetzen blendet die Tabelle aus und aktiviert die beiden Felder wieder.

Neben dem Titel, dem Link und den ausgewerteten Tokens des dargestellten Dokuments zeigt jeder Eintrag in der Tabelle den ihm zugeordneten Score, aus dem sich seine Position in der Liste ergibt. Diese ist über die ebenfalls pro Eintrag angezeigten Buttons Elevate und Exclude beeinflussbar:

Elevate

Der Button Elevate hebt das Suchergebnis grün hervor und verschiebt es an die erste Position der Ergebnisliste. Über die anstelle des Elevate-Buttons erscheinenden Pfeil-Buttons lässt sich die Position des Eintrags noch genauer festlegen. Dabei ist jedoch zu beachten, dass sich die Positionierung über die Pfeil-Buttons nur auf die priorisierten Einträge bezieht. Eine Vermischung priorisierter und nicht priorisierter Einträge ist nicht möglich. Über den Button mit dem Symbol eines Minuszeichens kann die Priorisierung wieder aufgehoben werden.

Exclude/Include

Der Button Exclude hebt das Suchergebnis gelb hervor und entfernt es aus der Ergebnisliste. Dies bedeutet, dass es nicht mehr im Frontend angezeigt wird. Der stattdessen erscheinende Button Include fügt das Suchergebnis wieder der Liste hinzu.

Sowohl Elevations als auch Exclusions basieren auf Links, die zu einem bestimmten Zeitpunkt im Index vorhanden sind. Durch die Veränderung der Suchergebnisliste kann es daher zu Situationen kommen, in denen die Links nicht mehr verfügbar und somit vom Datengenerator nicht mehr erfassbar sind. Aufgrund ihrer fehlenden Entsprechung im Index sind diese Links nicht mehr in der Listenansicht anzeigbar. Es handelt sich bei ihnen um sogenannte verwaiste Elevations bzw. Exclusions.

Im Fall solcher Einträge erscheint in der Detailansicht eines Adaptable Results eine Warnung. Diese listet die verwaisten Links und ihre Dokumenten-IDs auf. Die Aktivierung des Häkchens unter der Warnung löst eine Bereinigung bei der Speicherung aus.

Das Feld Seite manuell hinzufügen ermöglicht die manuelle Ergänzung zusätzlicher Dokumente durch die Angabe ihrer URL. Diese müssen bereits im Index der Datengeneratoren, die der ausgewählten Prepared Search zugeordnet sind, enthalten sein. Die Eingabe der entsprechenden URL muss in der Form http[s]://www.newdocument.com zu erfolgen und ist mit dem Plus-Button zu bestätigen. Ist das Dokument im Index enthalten, wird es der Ergebnisliste hinzugefügt. Andernfalls erscheint ein entsprechender Hinweis.

Jede Änderung an der Suchergebnisliste ist mithilfe des Speichern-Buttons zu persistieren. Erst mit diesem Klick werden die Anpassungen übernommen, auch wenn sie zuvor bereits in der Liste sichtbar sind.

Liste bestehender Adaptable Results

Nach der Speicherung und erfolgreichen Erzeugung des Adaptable Results wird es der Liste bestehender Adaptable Results im gleichnamigen Bereich hinzugefügt. Die Liste gliedert sich in drei Spalten mit den folgenden Informationen:

Name

Das während der Erstellung des Adaptable Results verwendete Suchwort fungiert gleichzeitig als dessen Name und ist in dieser Spalte dargestellt.

Wird nicht nur ein Suchwort, sondern eine Liste an Suchwörtern übergeben, werden diese alphabetisch sortiert.

Prepared Search

Die Spalte enthält die Prepared Search, auf die sich die Suchanfrage bezieht. Sie wird während der Erstellung des Adaptable Results selektiert.

Letzte Bearbeitung

Die Informationen in dieser Spalte zeigen, wer und wann die letzte Änderung an dem Adaptable Result vorgenommen hat.

Adaptable Result bearbeiten

Der Button mit dem Symbol eines Stifts ermöglicht die Bearbeitung eines Adaptable Results. Ein Klick auf ihn öffnet die Detailansicht mit den vorgenommenen Eingaben. Diese lassen sich entsprechend der zuvor beschriebenen Möglichkeiten verändern.

Adaptable Result löschen

Der Button mit dem Symbol eines Mülleimers ermöglicht die Löschung eines Adaptable Results. Ein Klick auf diesen Button öffnet einen Dialog mit einer Sicherheitsabfrage, mit der die Löschung zu bestätigen ist.

Alternativ besteht über die Checkboxen, die in der Übersichtsliste vor jedem Adaptable Result sichtbar sind, die Möglichkeit, mehrere Adaptable Results für die Löschung auszuwählen. Der Button Ausgewählte löschen entfernt diese markierten Adaptable Results, nachdem zuvor ebenfalls eine Sicherheitsabfrage bestätigt wurde.

2.3. Daten

Für die Erstellung eines Suchindex greift die SmartSearch kundenunternehmensseitig auf die zu erfassenden Daten zu, die in Form von Webseiten, Portalen oder Datenbanken vorliegen können. Ihre Erfassung erfolgt über sogenannte Datengeneratoren, die unterschiedliche Konfigurationsmöglichkeiten bereitstellen. Die auf dem Solr-Server persistierten Daten lassen sich anschließend über den ebenfalls durch das Cockpit bereitgestellten Browser einsehen. Dieser stellt neben den Inhalten auch alle Metadaten dar.

Die nachfolgenden Unterkapitel beschreiben sowohl die Datengeneratoren als auch den Browser im Detail.

2.3.1. Datengeneratoren

Für die kundenunternehmensseitige Erfassung der benötigten Daten stellt die SmartSearch sogenannte Datengeneratoren bereit. Ihre Erstellung und Verwaltung erfolgt in der gleichnamigen Oberfläche, die über den Menübereich Daten  Datengeneratoren aufrufbar ist.

datagenerator
Abbildung 15. Datengenerator

Der Bereich zeigt eine Liste aller bereits existierenden Datengeneratoren und ist daher initial leer. Bei der Erstellung weiterer Datengeneratoren ist zwischen drei Arten zu unterscheiden:

  • Web

  • XML

  • Extern

Neben diesen bei der manuellen Erstellung relevanten Datengeneratorarten existieren noch weitere, welche nicht manuell angelegt werden können. Ein Beispiel hierfür ist der Typ API, der bei Nutzung durch das SmartSearch Connect-FirstSpirit-Modul oder der Verwendung der Generic API erzeugt wird.

Datengenerator anlegen

Für die Erstellung eines neuen Datengenerators existiert eine eigene Ansicht, die per Klick auf den Button Neuer Datengenerator aufrufbar ist und sich in drei Tabs gliedert. Neben den zwei Tabs Allgemein und Enhancer, die für alle Datengeneratoren identisch sind, besitzt jeder von ihnen zusätzlich ein spezifisches Tab.

newdatagenerator
Abbildung 16. Datengenerator - Tabs

Die nachfolgenden Absätze beschreiben zuerst die beiden identisch Tabs, bevor eine Erläuterung der spezifischen Tabs folgt:

Allgemein

Innerhalb des Tabs Allgemein ist zunächst ein Name für den zu erstellenden Datengenerator anzugeben und eine Default-Sprache auszuwählen. Der Zähler Mindestanzahl Dokumente zur Synchronisation definiert einen Schwellenwert. Ab diesem Schwellenwert erfolgt eine Persistierung der erfassten Daten in den vom Solr-Server erzeugten Index. Die übrigen Einstellungen ermöglichen eine regelmäßige und automatische Erfassung der benötigten Daten und sind über die Checkbox Regelmäßig starten de-/aktivierbar. Dafür kann zwischen einem täglichen und wöchentlichen Startintervall gewählt und über die Angabe eines Datums sowie einer Uhrzeit der nächste Startzeitpunkt festgelegt werden.

Die Sprachen entsprechen hier den nach ISO 639-1 vorgesehenen Werten, also aus zwei Zeichen bestehenden Sprachcodes. Findet ein Datengenerator an Dokumenten längere Sprachkürzel vor, so wird alles nach dem zweiten Zeichen abgeschnitten. Auf diesem Weg wird beispielsweise aus dem Sprachcode de_DE im Rahmen der Generierung der Wert de.

datagenerator general
Abbildung 17. Datengenerator - Allgemein
Enhancer

Der Tab Enhancer ermöglicht die Erzeugung konfigurierter Enhancer. Sie dienen der Modifikation der durch den Datengenerator erfassten Daten vor ihrer Indizierung auf dem Solr-Server. Pro Datengenerator-Konfiguration können mehrere Groovy-Skript-Enhancer hinterlegt werden. Diese werden in der Reihenfolge abgearbeitet, in der sie an der Konfiguration hinterlegt sind. Die Erstellung eines Enhancers erfolgt über einen Klick auf den Button Neuer Enhancer.

Eine detaillierte Beschreibung der erstellbaren Enhancer ist im nachfolgenden Enhancer-Kapitel enthalten.

Web-Crawler

Der Tab Web-Crawler ist spezifisch für den gleichnamigen Datengenerator und wird daher nur für diesen angezeigt. Er erfasst alle Inhalte eines bestehenden Webauftritts. Dies umfasst sowohl die HTML-Inhalte (jedoch ohne in ihnen enthaltene HTML-Kommentare) als auch alle Dateien jeglichen Formats. Dafür benötigt er zunächst eine Start-URL sowie die Angabe, wie viele Seiten maximal zu erfassen sind. Entspricht die Start-URL einer Sitemap, werden die in der Sitemap enthaltenen Verweise nacheinander erfasst.

Durch die Angabe des Werts Null für die zu erfassende Seitenanzahl wird der gesamte Webauftritt erfasst.

Um HTML-Inhalte bei der Erzeugung des Suchindex zu ignorieren, müssen diese durch HTML-Kommentare der Form <!-- NO INDEX -→ und <!-- INDEX -→ gekennzeichnet sein.

Enthalten die erfassten Seiten Verweise auf andere Inhalte, folgt der Datengenerator ihnen und erfasst die verlinkten Inhalte ebenfalls. Dabei werden auch kanonische Verweise berücksichtigt. Auf diesem Weg erfasst er den mit der Start-URL angegeben Webauftritt entweder vollständig oder bis zum angegebenen Limit.

Durch den Datengenerator zu ignorierende Verweise müssen mit Attribut rel="nofollow" gekennzeichnet sein.

Mit einem im Feld Check URL Script angegebenen, selbst implementierten Groovy-Skript lässt sich die Erfassung und Verarbeitung verlinkter Inhalte individuell beeinflussen. Der Button Validieren überprüft das erstellte Skript auf mögliche Fehler. Das Skript bestimmt, ob ein Link erfasst wird: Wenn das Skript true zurückgibt, wird jeder vom Crawler gefundene Link erfasst, was das Risiko eines nie endenden Crawlers birgt.

Groovy Skript Rumpf welcher jeden Link als zu crawlen markiert.
return true; // Achtung: Dies könnte zu einem nie endenden Crawler führen
Groovy Skript Rumpf um innerhalb der Domäne www.mithrasenergy.com keine Seiten mit '/shop/' in der URL zu erfassen
return url.startsWith("https://www.mithrasenergy.com") && !url.contains("/shop/");

Der Web-Crawler erkennt Sitemaps im XML-Format automatisch, falls sie als Start-URL angegeben sind. Er behandelt die in diesen Sitemaps verzeigerten Dokumente wie HTML-Links und erfasst sie entsprechend. Alternativ ist auch die Nutzung einer Index-Sitemap als Start-URL möglich. Hierbei ist zu beachten, dass sowohl XML-Sitemaps als auch Index-Sitemaps für sich alleine keine Dokumente sind und somit keine Aufnahme in den Index erfolgt.

Eine innerhalb einer HTML-Datei referenzierte sitemap.xml wird nicht als Sitemap, sondern als normales Dokument abgearbeitet. Um eine URL als Sitemap abzuarbeiten, muss die URL direkt als Start-URL oder als Inhalt einer Sitemap-Index-Datei aufgeführt sein.

Der Datengenerator kann ausschließlich Verweisen von HTTP- auf HTTP(S)-Seiten folgen. Der Wechsel von HTTPS zu HTTP ist ihm nicht möglich. Dies gilt auch bei der Verwendung einer Index-Sitemap, in der Verweise auf andere Sitemaps enthalten sind.

Die übrigen Einstellungen ermöglichen eine Spezifierung der Suchanfragen des Datengenerators:

  • Mit der De-/Aktivierung der Checkbox No-Script Bereiche im HTML ignorieren lässt sich bestimmen, ob die in diesen Bereichen enthaltenen Inhalte ebenfalls zu erfassen sind.

  • Ist die Checkbox robots.txt beachten aktiviert, berücksicht der Datengenerator die in der robots.txt-Datei der entsprechenden Webpräsenz definierten Einschränkungen. Andernfalls ignoriert er diese und erfasst den gesamten Inhalt des Webauftritts.

  • Enhalten die erfassten Links zusätzliche Parameter, können diese durch die Aktivierung der Checkbox Parameter aus URL entfernen übersprungen werden. Auf diesem Weg lassen sich Redundanzen in den erfassten Dokumenten vermeiden.

  • Das Feld Charset legt fest, mit welchem Charset die Persistierung der erfassten Daten erfolgt.

  • Sowohl für die Erfassung der Daten als auch für den Abruf der persistierten Dokumente bringt die SmartSearch den User-Agent smart-search-agent mit. Sein Referenzname ist in dem entsprechenden Feld enthalten und lässt sich beliebig überschreiben.

  • Der für den Abstand zwischen zwei Downloads definierte Wert bestimmt, wie schnell die SmartSearch die einzelnen Suchabfragen absetzt. Auf diese Weise ist eine Überlastung des Webservers aufgrund einer zu hohen Abfragefrequenz vermeidbar.

  • Erhält der Datengenerator auf eine Suchanfrage keine Antwort, gibt der Read and connect-Timeout die Zeitspanne bis zum Abbruch der Datenerfassung an.

    Bei der Erfassung der Inhalte eines bestehenden Webauftritts kann der Web-Crawler unterschiedliche Status Codes erhalten. Diese werden wie folgt verarbeitet:

    • 2xx: Diese Status Codes entsprechen den Standard Codes. In diesem Fall werden die Inhalte durch den Web-Crawler normal verarbeitet.

    • 301: Dieser Status Code entspricht einem Redirect. Der Web-Crawler übernimmt an dieser Stelle die URL der neuen Seite.

    • 302 und 307: Diese beiden Status Codes bezeichnen ebenfalls jeweils einen Redirect. Auch in diesem Fall übernimmt der Web-Crawler die Inhalte der neuen Seite, der alte Verweis bleibt jedoch erhalten.

    • 4xx und 5xx: Diese Status Codes bezeichnen Fehlerstatus. Die betroffenen Seiten werden durch den Web-Crawler ignoriert und der Fehler als DEBUG geloggt.

    Für die sich aus einem 3xx Status Code ergebenen Redirect-Verweise, wird die Strip Parameters-Konfiguration berücksichtigt.

    Der Web-Crawler versucht zunächst aus folgenden Tags im Quelltext des gecrawlten HTML-Dokuments eine Sprachkennzeichnung auszulesen:

    1. <html lang=de">

    2. <body lang=de">

    3. <meta name="language" content="de">

    4. <meta http-equiv="content-language" content="de">

    5. <meta property="og:locale" content="de_DE">

    6. <meta property="DC:language" content="de">

    7. <meta property="og:locale:alternative" content="de_AT">

      <meta property="og:locale:alternative" content="de_CH">

    Beim ersten vorhandenen Tag wird die angegebene Sprache als Sprache des Dokuments interpretiert und gespeichert.

    Ist keines der Tags vorhanden, so versucht der Web-Crawler automatisch eine Sprache aus dem content-Bereich des Dokuments zu erkennen. Scheitert dies, so wird die am Datengenerator gepflegte Standardsprache am Dokument gespeichert.

    Die SmartSearch speichert die Eingangssprache eines Dokuments standardmäßig im Feld language_original_stored_only. Diese Speicherung ist unabhängig von der im Rahmen der Spracherkennung und - verarbeitung vorgenommenen Änderungen an der Sprache eines Dokuments.

    Verarbeitet die SmartSearch beispielsweise die am Dokument im Feld language_keyword übergebene Sprache de_DE und ändert sie in die unterstützte Sprache de, so ist der Wert des Felds language_original_stored_only dennoch de_DE.

    webcrawler
    Abbildung 18. Web-Crawler
XML-Crawler

Der Tab XML-Crawler ist ebenfalls spezifisch für den gleichnamigen Datengenerator und wird daher nur für diesen angezeigt. Er erfasst XML-Daten aus einer definierten Quelle, die nicht in Form einer Webseite vorliegt. Dafür ist im entsprechenden Feld eine XML-URL anzugeben, für deren Ziel zwei Dateitypen existieren:

  • Daten-XML-Datei
    Die Daten-XML-Datei entspricht einer spezifischen Quelle. Sie erfasst die durch den Datengenerator zu verarbeitenden Dokumente in einer einzigen Datei.

  • Seed-XML-Datei
    Besteht die Notwendigkeit, mehrere Quellen zu erfassen, lässt sich die URL einer Seed-XML-Datei übergeben. Der Datengenerator folgt dann den in dieser Datei enthaltenen Verweisen, deren Anzahl nicht limitiert ist.

Die Erfassung von XML-Sitemaps ist nur mithilfe des Web-Datengenerators möglich.

Der Zugriff auf zu verarbeitende Dateien findet ausschließlich per HTTP(S)-Request statt. Eine Erfassung von XML-Dateien auf dem SmartSearch-Server-Dateisystem oder anderen Dateiquellen ist nicht möglich. Erhält der Datengenerator auf eine solchen Request keine Antwort, gibt der Read and connect-Timeout die Zeitspanne bis zum Abbruch der Datenerfassung an.

Sowohl für die Erfassung der Daten als auch für den Abruf der persistierten Dokumente bringt die SmartSearch den User-Agent smart-search-agent mit. Sein Referenzname ist in dem entsprechenden Feld enthalten und lässt sich beliebig überschreiben.

xmlcrawler
Abbildung 19. XML-cw}

Daten-XML-Datei

Der XML-Crawler erfasst XML-Daten, die entweder aus einer einzelnen oder mehreren Quellen stammen. Eine Daten-XML-Datei entspricht einer einzelnen Quelle. Sie beinhaltet eine beliebige Anzahl von Dokumenten, die die SmartSearch im Rahmen einer XML-Datengenerierung verarbeitet. Mit dem Start eines XML-Datengenerators, der eine solche Datei erfasst, werden alle in der Datei enthaltenen Dokumente dem Suchindex hinzugefügt. Dies setzt jedoch voraus, dass die Dokumente valide sind.

Eine valide Daten-XML-Datei erfüllt folgende Anforderungen:

  • Das Wurzelelement ist ein documents-Element.

  • Das documents-Element enthält beliebig viele document-Elemente:

    • Ein document-Element ist eine Einheit, die mithilfe der Suche gefunden werden kann.

    • Ein document-Element besitzt ein 'uid'- Attribut, dessen Wert eine eindeutige alphanumerische Dokumenten-ID ist.

    • Die einzelnen document-Elemente können unterschiedlich viele field-Elemente beinhalten.

      • Verschiedene document-Elemente können aus unterschiedlich vielen Feldern bestehen.

      • Ein field-Element besitzt ein name-Attribut, dessen Wert dem gewünschten Feldnamen im Suchindex entspricht.

      • Ein field-Element beinhaltet den Wert, den das Feld am Dokument annehmen soll.

      • Mehrfachwerte (z.B. bei Feldern mit dem dynamischen Feldtyp *_keyword) können dadurch erzeugt werden, indem field-Elemente mit einem identischen name-Attributwert, aber mit unterschiedlichen Tag-Inhalten eingetragen werden (vgl. Wert category_keyword im nachfolgenden Beispiel).

      • Die Verarbeitung eines Feldwertes ist abhängig von der Namenskonvention des Feldnamens. Eine Erläuterung der verfügbaren Namenskonventionen und Feldtypen finden Sie im Abschnitt Verfügbare Felder und Feldtypen.

        Es wird empfohlen, Feldwerte immer innerhalb eines CDATA-Blocks zusammenzufassen (siehe Beispiel).

Das folgende Beispiel zeigt eine exemplarische Struktur einer XML-Daten-Datei. Eine solche Datei kann direkt als XML-URL für einen XML-Datengenerator dienen.

Beispiel für eine Daten-XML-Datei
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<documents>
   <document uid="0815">
           <field name="title"><![CDATA[Das Erklärvideo zur SmartSearch-XML-Datei]]></field>
                <field name="link"><![CDATA[https://www.youtube.com/watch?v=...]]></field>
                <field name="content">
                   <![CDATA[Hier steht inhaltlich, wie Sie eine SmartSearch-XML-Datei erstellen.]]>
                </field>
                <field name="language_keyword"><![CDATA[de]]></field>
                <field name="publishing_date"><![CDATA[ 2019-05-23T10:00:01Z ]]></field>
                <field name="favorites_count_long"><![CDATA[34]]></field>
                <field name="category_keyword"><![CDATA[socialmedia]]></field>
                <field name="category_keyword"><![CDATA[presse]]></field>
                <field name="meta_keywords"><![CDATA[SmartSearch Erklärvideo Facetten]]></field>
   </document>
        ...
        <document uid="4711">
           <field name="title"><![CDATA[Die Hilfeseiten zu SmartSearch.]]></field>
                ...
        </document>
</documents>

Ein Dokument ist nur valide, wenn im entsprechenden document-Element die Felder title, link und content vorhanden sind. Hierbei werden die Felder title und content sprachabhängig verarbeitet.

Der Feldname id darf nicht verwendet werden. Dieser wird intern genutzt und ein Vorhandensein im Quelldokument führt zu einem Fehler bei der Datengenerierung.

Es wird außerdem empfohlen, die Sprache des Dokuments über den Feldnamen language_keyword zu übergeben. Weitere Informationen zu den verfügbaren Sprachkürzeln sind im Abschnitt Details zu den Sprachen enthalten.

Seed-XML-Datei

Im Gegensatz zur Daten-XML-Datei stellt eine Seed-XML-Datei Daten aus verschiedenen Quellen bereit. Sie beinhaltet daher eine unlimitierte Anzahl von Verweisen auf reine Daten-XML-Dateien oder weitere Seed-XML-Dateien. Die Angabe weiterer Seed-XML-Dateien ermöglicht eine beliebig tiefe Baumstruktur. Bei der Verabreitung der Seed-XML-Datei folgt der Datengenerator allen diesen Verweisen und erfasst sie so, als wären sie direkt als XML-URL angegeben worden. Auch in diesem Fall müssen alle Dokumente valide sein.

Eine valide Seed-XML-Datei erfüllt folgende Anforderungen:

  • Das Wurzelelement ist ein seeds-Element.

  • Das seeds-Element enthält beliebig viele seed-Elemente:

    • Ein seed-Element stellt eine Daten-XML-Datei oder eine weitere Seed-XML-Datei dar.

    • Ein seed-Element ist leer, hat jedoch ein Attribut url mit dem Ziel des Verweises.

Das folgende Beispiel zeigt eine Seed-XML-Datei, die sowohl Verweise auf Daten- als auch auf Seed-XML-Dateien enthält:

Beispiel für eine Seed-XML-Datei
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<seeds>

    <!-- Verweise auf Daten-XML-Dateien -->
        <seed url="https://www.customer.com/.../.../documents-01.xml" />
        <seed url="https://www.customer.com/.../.../documents-02.xml" />

    <!-- Verweise auf weitere Seed-XML-Dateien -->
        <seed url="https://www.customer.com/.../.../another-seed.xml" />

</seeds>
Externer Crawler

Der externe Datengenerator sammelt selbst keine Informationen, sondern erfasst ausschließlich Daten, die er von außen über die REST-Schnittstelle übergeben bekommt. Er besitzt daher in seinem spezifischen Tab keine zusätzlichen Konfigurationsmöglichkeiten. Die in den Tabs Allgemein und Enhancer vorgenommenen Einstellungen sind für ihn ausreichend.

Die Übertragung der Daten an die REST-Schnittstelle ist durch eine Eigenimplementierung zu realisieren. Die dafür notwendigen Informationen sind in der Dokumentation SmartSearch REST API for external datagenerators enthalten.

Der externe Datengenerator wird zukünftig in seiner Funktionalität durch die generische API ersetzt und nicht weiterentwickelt. Bei neuen Projekten sollte also direkt diese neue Vorgehensweise zur Indizierung von extern generierten Dokumenten verwendet werden.

Liste bestehender Datengeneratoren

Nach der Speicherung und erfolgreichen Erzeugung des Datengenerators wird er der Liste bestehender Datengeneratoren im gleichnamigen Bereich hinzugefügt. Die Liste gliedert sich in eine vierspaltige Tabelle mit den folgenden Informationen:

Name

Die Spalte enthält den Namen des Datengenerators, der während der Erzeugung angegeben wurde.

Typ

Diese Spalte gibt an, ob es sich um einen Datengenerator des Typs Web, XML oder Extern handelt.

Status

Diese Spalte zeigt den Zustand an, in dem sich der Datengenerator aktuell befindet. Je nach Vorgang kann er einen der folgenden Status besitzen: Bereit, Erfassen, Erster bzw. Zweiter Enhancer, Synchronisiert oder Fehler.

Letzte Bearbeitung

Die Informationen in dieser Spalte zeigen, wer und wann die letzte Änderung an dem Datengenerator vorgenommen hat.

Datengenerator bearbeiten

Der Button mit dem Symbol eines Stifts ermöglicht die Bearbeitung des Datengenerators. Ein Klick auf ihn öffnet die Detailansicht mit allen vorgenommenen Konfigurationen. Diese lassen sich entsprechend der zuvor beschriebenen Möglichkeiten verändern.

Datengenerator ausführen

Der Button mit dem Play-Symbol startet manuell die Ausführung des Datengenerators. Er erfasst daraufhin die Daten der konfigurierten Quelle und überträgt sie an den Solr-Server.

Die Persistierung der Daten durch den Solr-Server findet in regelmäßigen Intervallen statt. Es kann daher bis zu fünfzehn Minuten dauern, bis die Daten abrufbar sind.

Der Button Collection neu laden ermöglicht die sofortige Synchronisation. Er ist ausschließlich für Mitglieder der Gruppe ADMIN sichtbar und berücksichtig die erfassten Daten aller Datengeneratoren. Die Synchronisation der Daten eines einzelnen Datengenerators ist nicht möglich.

Datengenerator löschen

Der Button mit dem Symbol eines Mülleimers ermöglicht die Löschung eines Datengenerators. Ein Klick auf diesen Button öffnet einen Dialog mit einer Sicherheitsabfrage, mit der die Löschung zu bestätigen ist.

Alternativ besteht über die Checkboxen, die in der Übersichtsliste vor jedem Datengenerator sichtbar sind, die Möglichkeit, mehrere Datengeneratoren für die Löschung auszuwählen. Der Button Ausgewählte löschen entfernt diese markierten Datengeneratoren, nachdem zuvor ebenfalls eine Sicherheitsabfrage bestätigt wurde.

Datengenerator leeren

Der Button mit dem Symbol eines Radiergummis ermöglicht die Löschung der indizierten Dokumente eines Datengenerators. Ein Klick auf den Button Ausgewählte leeren öffnet einen Dialog mit einer Sicherheitsabfrage, mit der die Löschung zu bestätigen ist.

2.3.2. Browser

Für die Darstellung der per Datengenerator erfassten und durch den Solr-Server persistierten Daten stellt die SmartSearch einen Browser bereit. Dieser ist über den Menüpunkt Daten  Browser aufrufbar.

Für die Darstellung ist im Drop-Down-Menü zunächst ein Datengenerator auszuwählen. Der Browser listet daraufhin alle Dokumente auf, die durch diesen Datengenerator erfasst wurden. Per Klick auf ein solches Dokument lassen sich außerdem alle Felder und die in ihnen gespeicherten Metainformationen anzeigen. Die Buttons Vorheriges Dokument und Nächstes Dokument ermöglichen ein Durchblättern durch die erfassten Dokumente, deren Gesamtanzahl zwischen ihnen ablesbar ist.

browser
Abbildung 20. Browser

2.3.3. Aufbereitung von Daten durch Enhancer

Im Rahmen einer Datengenerierung ist es häufig nötig, die hierbei für den Index vorbereiteten Dokumente anzupassen. Dies ist erforderlich, um die Auffindbarkeit von Dokumenten zu erhöhen, ungültige Dokumente zu entfernen oder die generelle Datenqualität zu erhöhen.

Die SmartSearch nutzt hierfür sogenannte Enhancer. Bei diesen handelt es sich sowohl um mitgelieferte als auch um projektabhängig konfigurierte Komponenten, die ein Bestandteil der Konfiguration eines Datengenerators sind. Bei einer Datengenerierung werden für jedes erfasste Dokument die Enhancer ausgeführt und deren Effekte auf das zu indizierende Dokument angewendet.

Generell gibt es drei Arten von Enhancern, die in folgender Reihenfolge ausgeführt werden:

  1. Allgemeine Enhancer

    Die allgemeinen Enhancer werden von der SmartSearch bereitgestellt. Sie sind für die Nutzenden transparent und konfigurativ nicht anpassbar. Des Weiteren ermöglichen sie beispielsweise die Durchführung von Sprachanalysen, deren Ergebnisse in den folgenden, konfigurierten Enhancern nutzbar sind.

  2. Konfigurierte Enhancer

    Mit den konfigurierten Enhancern bietet die SmartSearch die Möglichkeit, eigene Logik zur Verarbeitung und Anpassung von Dokumenten im Rahmen einer Datengenerierung zu konfigurieren. Die Arten konfigurierter Enhancer und ihre Anwendungsfälle sind im folgenden Abschnitt erläutert.

  3. Abschließende (Finishing-)Enhancer

    Die abschließenden (Finishing-)Enhancer werden analog zu den allgemeinen Enhancern von der SmartSearch bereitgestellt. Auch sie sind für die Nutzenden transparent und ebenfalls konfigurativ nicht anpassbar.

Der Tab Enhancer in der Konfigurationsansicht eines Datengenerators ermöglicht die Erzeugung konfigurierter Enhancer. Diese dienen der Modifikation der durch den Datengenerator erfassten Daten vor ihrer Indizierung auf dem Solr-Server. Pro Datengenerator-Konfiguration können mehrere Groovy-Skript-Enhancer hinterlegt werden. Diese werden in der Reihenfolge abgearbeitet, in der sie an der Konfiguration hinterlegt sind. Die Erstellung eines Enhancers erfolgt über einen Klick auf den Button Neuer Enhancer.

Groovy-Skript-Enhancer

Dieser Enhancer ermöglicht die Einbindung eines selbst zu implementierenden Groovy-Skripts. Die dafür erforderliche Editiermaske öffnet sich nach der Erstellung des Enhancers über den Menüpunkt Groovy-Skript-Enhancer. Ein solches Skript ermöglicht zusätzliche Modifikationen des Datenbestands und den Zugriff auf die Daten am Dokument, die im Rahmen der Ausführung der allgemeinen Enhancer generiert werden. So lassen sich beispielsweise weitere Dokumente dem Datenbestand hinzufügen oder bestehende Dokumente bearbeiten bzw. löschen. Eine getätigte Eingabe ist mithilfe des Buttons Validieren auf mögliche Syntaxfehler überprüfbar.

Das folgende Code-Beispiel zeigt den Aufbau eines Groovy-Skript-Enhancers:

Aufbau eines Groovy-Skript-Enhancers
void manipulate(final Document document, final String html, final org.jsoup.nodes.Document jsoupDocument)  {

// Nur dieser Methoden-Rumpf ist zu befüllen.
// Die Signatur wird in der Editiermaske automatisch um den konfigurierten Code geklammert.

}

Dem Groovy-Skript wird ein Objekt document, ein String html sowie ein Object jsoupDocument übergeben:

  • Das Objekt document beinhaltet das aktuell in der Verarbeitung stehende SmartSearch-Dokument. Diesem können im Rahmen der Verarbeitung weitere Daten hinzugefügt oder entfernt werden:

    document.addData("Feldname","Feldwert")
    document.removeData("zuEntfernendesFeld")
  • Der String html beinhaltet im Falle eines Web-Datengenerators das HTML der ursprünglich vom Crawler erfassten Seite, welche aktuell in ein SmartSearch-Dokument umgewandelt wird.

    Für andere Datengenerator-Arten ist dieses Objekt nicht relevant.

  • Das Object jsoupDocument beinhaltet im Falle eines Web-Datengenerators eine Repräsentanz der Seite als Jsoup-Dokument. Dies ermöglicht eine objektbasierte Verarbeitung der Seite:

    document.addData("Seitentitel", jsoupDocument.title())

    Dieses Objekt ist ebenfalls nur für Datengenerator des Typs WEB relevant.

Soll ein Dokument im Rahmen der Generierung nicht in den Index übernommen werden, so kann dies durch die Definition des Boost-Werts 0 erreicht werden:

Definition des Boost-Werts
document.setBoost(0)

Weitere Beispiele für Groovy-Skripte und deren Nutzung sind im Kapitel Beispiele für Groovy-Skript-Enhancer enthalten.

Extrahieren von Namen und Nomen

Entsprechend seines Namens extrahiert dieser Enhancer Namen und Nomen und speichert sie in den Feldern names_multi_keyword und nouns_multi_keyword.

Dieser Enhancer ist nur für die Sprache Deutsch einsetzbar und besitzt für andere Sprachen keine Funktion.

2.3.4. Verfügbare Felder und Feldtypen

Mit der SmartSearch wird eine Datenstruktur - das sogenannte Solr-Schema - ausgeliefert, welche die für erfasste Dokumente vorhandenen Felder definiert. Diese Felder am Dokument beinhalten nach einer Datenerfassung strukturierte Inhalte, die im Bezug auf das Dokument im Index gespeichert sind. Da die Inhalte verschiedener Felder potenziell Einfluss auf die Ergebnisse einer Suchabfrage haben, werden im folgenden einige relevante Felder erläutert. Einige Felder werden während des Laufs von Datengeneratoren automatisch angelegt und mit Werten befüllt. Der Groovy-Skript-Enhancer bietet außerdem die Möglichkeit, weitere Felder und Werte hinzuzufügen.

Grundsätzlich besteht ein Feld aus einem Bezeichner und einem oder mehreren Werten. Es existieren drei Arten von Feldern, welche sich in ihrem Gebrauch und ihrer Funktion unterscheiden können:

  • Pflichtfelder

  • statische Felder

  • dynamische Felder

Ein Feld kann abhängig vom Feldtyp einen oder mehrere Werte haben. Weitere Informationen hierzu sind im Abschnitt "Felder mit Mehrfachwerten pro Dokument" zu finden.

Für die Nutzung der SmartSearch ist es wichtig, Anwendungsfälle und Inhalt der verfügbaren Felder zu verstehen. Die folgenden Tabellen geben eine Übersicht über die drei Feldarten sowie den relevanten Teil der vorhandenen Felder und skizzieren deren Inhalt:

Pflichtfelder

Die Bezeichner sowie Werte von Pflichtfeldern sind zwingend an jedem Dokument vorhanden, erstere sind außerdem unveränderbar.

Die nachfolgende Tabelle zeigt eine Übersicht von Feldern dieser Art:

Tabelle 1. Pflichtfelder
Bezeichner Beschreibung Inhalt

id

Eindeutige ID eines Dokuments

Mit dem Inhalt dieses Felds ist jedes Dokument im Index eindeutig identifizierbar.

title

Titel eines Dokuments

Der Titel eines Dokuments ist beispielsweise als Überschrift auf einer Suchergebnisseite nutzbar.

content

Inhalt eines Dokuments

Der Inhalt des Dokuments ist - neben dem Titel - die inhaltliche Grundlage für die Suchfunktion. Inhalte, die für die Auffindung des Dokuments relevant sind, sind im Normalfall während der Datengenerierung in dieses Feld zu schreiben.

link

URL des Dokuments

Die URL eines Dokuments ist die Sprungmarke, mit der die Quelle des indizierten Dokuments im Rahmen eines Suchvorgangs von der endanwendenden Person abrufbar ist. Dies kann zum Beispiel ein Link hinter dem Titel des Dokuments sein, welcher dann zum eigentlichen Dokument führt.

Statische Felder

Die Bezeichner statischer Feld sind ebenso wie die der Pflichtfelder unveränderbar. Im Gegensatz zu diesen besitzen statische Felder jedoch nicht zwingend einen Wert.

In der folgenden Tabelle sind einige typische statische Felder aufgeführt:

Tabelle 2. Statische Felder
Bezeichner Beschreibung Inhalt

thumbnail

Kompaktansicht als Bildverweis

Um die Kompaktansicht der Dokumente in einer Suchergebnisseite anzuzeigen, ist die URL einer solchen Kompaktansicht in diesem Feld zu speichern.

keywords

Schlagwörter

Dieses Feld ist für Begriffe vorgesehen, die vor der Übernahme in den Index keine sprachliche Verarbeitung wie beispielsweise Stemming durchlaufen sollen.

language

Sprachkürzel

Dieses Feld beinhaltet das Sprachkürzel nach ISO 639-1. Das Kapitel Datengeneratoren enthält weitere Informationen hierzu.

Dynamische Felder

Die Bezeichner dynamischer Felder folgen einer Namenskonvention und können in Abhängigkeit des Einsatzes und Dokuments vorhanden oder nicht vorhanden sein. Dynamische Felder sind dafür vorgesehen, das Schema flexibel für zukünftig nötige Daten und die Anwendung somit robuster zu gestalten.

Dynamische Felder verhalten sich wie statische Felder, außer dass ihre Bezeichner einen Platzhalter enthalten. Werden durch den Start einer Datengenerierung Dokumente indiziert, können Daten, welche keinem statischen Feld zuordenbar sind, durch ein dynamisches Feld aufgefangen werden.

So kann ein Dokument beispielsweise ein Feld custom_date beinhalten, welches im Solr-Schema nicht vorhanden ist. Die Daten in diesem Feld würden über das dynamische Feld *_date dennoch in den Index übernommen.

Weitere Informationen zu dynamischen Feldern sind der Solr-Dokumentation zu entnehmen.

Eine Übersicht der wichtigsten verfügbaren dynamische Felder ist folgender Tabelle zu entnehmen:

Tabelle 3. Dynamische Felder
Namensschema Beschreibung Inhalt Unterstütze Funktionalitäten

*_integer

Integer-Ganzzahlwerte

Felder dieser Art tragen Ganzzahlwerte aus dem Wertebereich Integer (32-bit signed integer).

Sortierung

*_long

Long-Ganzzahlwerte

Felder dieser Art tragen Ganzzahlwerte aus dem Wertebereich Long (64-bit signed integer).

Sortierung

*_double

Double-Gleitkommazahlenwerte

Felder dieser Art tragen Gleitkommazahlenwerte aus dem Wertebereich Double (64-bit IEEE floating point).

Sortierung

*_date

Datumswerte

Felder dieser Art tragen Datumswerte und sind entsprechend für zum Beispiel zeitliche Sortierungen zu verwenden. Die Werte sind im UTC-Format angegeben: zum Beispiel 2020-10-05T12:14:29.058Z

Sortierung

*_date_range

Datumswerte

Felder dieser Art tragen eine andere Art von Datumswerten: Anders als bei *_date geht es bei *_date_range nicht um einen genauen Zeitpunkt, sondern um einen Zeitraum. Beachten Sie, dass Felder dieses Typs nicht sortierbar sind, da sich Datumsbereiche überschneiden, überlappen oder verschachtelt sein können. Beispielweise einen Tag oder Jahr: 2020-10-05 or 2023.

*_keyword

Schlagwörter

Analog zum statischen Feld keywords beinhalten Felder dieses Typs Schlagwörter. Liegt ein solches Feld an einem Dokument vor, so wird der Wert automatisch als Facettenwert verarbeitet. Existiert die Facette noch nicht, so wird sie angelegt.

Mehrfachwerte

*_keyword_lc

Schlagwörter in Kleinbuchstaben

Felder dieses Typs beinhalten Schlagwörter, welche im Rahmen der Indizierung automatisch in Kleinbuchstaben umgewandelt wurden.

Mehrfachwerte

*_sort

Sortierwerte

Dieser Feldtyp ermöglicht die Speicherung sortierbarer Werte. Die Werte in diesen Feldern sind in Kleinbuchstaben umgewandelt und von Leerzeichen bereinigt.

Sortierung

*_sort_de

Sortierwerte – Spezialfall Deutsch

Dieser Feldtyp verhält sich analog zu *_sort. Er besitzt jedoch die Besonderheit, dass Umlaute sowie das ß bei den entsprechenden Vokalen beziehungsweise dem s einsortiert werden.

Sortierung

*_token

Gruppierungswerte

Dieser Feldtyp ermöglicht die Gruppierung von Dokumenten anhand der Feldinhalte, zum Beispiel Dokument- oder Produktkategorien.

Gruppierung

*_pnt

Räumliche Punktwerte

Felder dieses Typs beinhalten räumliche Punktwerte, um z.B. geografische Informationen zu hinterlegen. Die Werte haben das Format lat,lon (basierend auf den englischen Begriffen latitude und longitude für den Breiten- und Längengrad), zum Beispiel 1.23,4.56 Weitere Informationen sind in der Dokumentation zur zugrundeliegenden Solr-Spatial-Search enthalten.

*_facet_string

Textfacettenwerte

Felder dieses Typs beinhalten textuelle Werte zur Nutzung als Facettenausprägungen. Diese Felder werden durch die Nutzung von Bezeichnern der Art *_keyword automatisch angelegt und mit Facettenwerten befüllt.

Mehrfachwerte

*_facet_double

Gleitkommazahlenfacettenwerte

Felder dieses Typs beinhalten numerische Werte zur Nutzung als Facettenausprägungen. Um beispielsweise einen numerischen Facettenwert für die Facette price_keyword zu nutzen, ist ein entsprechender Wert in ein Feld price_facet_double einzutragen (zum Beispiel per Groovy-Skript-Enhancer).

Mehrfachwerte

*_stored_only

Unverarbeitete Werte

Felder dieses Typs beinhalten Inhalte mit bis zu 32766 Zeichen, welche nicht durchsuchbar gemacht oder in sonstiger Weise verarbeitet sind. Sie können jedoch beim Abruf von Dokumenten zur Anzeige mit abgefragt werden.

Mehrfachwerte

*_stored_only_big

Große unverarbeitete Werte

Felder dieses Typs beinhalten Inhalte unbeschränkter Größe, welche nicht durchsuchbar gemacht oder in sonstiger Weise verarbeitet werden sollen. Sie können jedoch beim Abruf von Dokumenten zur Anzeige mit abgefragt werden.

Mehrfachwerte

*_autocomplete

Begriffe für die Autovervollständigung

Felder dieses Typs beinhalten Begriffe, welche neben dem Inhalt des Dokuments zur Autovervollständigung verwendbar sind.

Begriffe, die auf diese Weise verwendet werden, werden in diesem Feld als leerzeichengetrennte Liste ausgegeben.

*_expanded_autocomplete

Begriffe für wortübergreifende Autovervollständigung

Felder dieses Typs beinhalten Begriffe, welche neben dem Inhalt des Dokuments zur Autovervollständigung über zwei Worte hinweg verwendbar sind.

Begriffe, die auf diese Weise verwendet werden, werden in diesem Feld als leerzeichengetrennte Liste ausgegeben.

Statische/dynamische Felder für Sprachkürzel

Neben den oben beschriebenen Arten von Feldern existieren noch Felder, welche pro Sprache an Dokumenten vorhanden sein können und deren Namensschemata die folgende Tabelle veranschaulichen soll:

Tabelle 4. Statische/dynamische Felder für Sprachkürzel [de/en/fr/…​]
Namensschema Beschreibung Inhalt Unterstütze Funktionalitäten

*_text_de

Sprachabhängiger textueller Inhalt

Diese Felder enthalten Inhalte, die sprachabhängig textuell verarbeitet sind.

Mehrfachwerte

*_autocomplete_de

Sprachabhängige Begriffe für die Autovervollständigung

Felder dieses Typs beinhalten sprachabhängige Begriffe, welche neben dem Inhalt des Dokuments zur Autovervollständigung verwendbar sind.

Begriffe, die auf diese Weise verwendet werden, werden in diesem Feld als leerzeichengetrennte Liste ausgegeben.

Mehrfachwerte

*_expanded_autocomplete_de

Sprachabhängige Begriffe für wortübergreifende Autovervollständigung

Felder dieses Typs beinhalten sprachabhängige Begriffe, welche neben dem Inhalt des Dokuments zur Autovervollständigung über zwei Worte hinweg verwendbar sind.

Begriffe, die auf diese Weise verwendet werden, werden in diesem Feld als leerzeichengetrennte Liste ausgegeben.

Mehrfachwerte

Felder mit Mehrfachwerten pro Dokument

Bei der Nutzung der SmartSearch können für Felder in bestimmten Fällen mehrere Werte für einen Feldnamen indiziert werden. Dieses Anlegen von Mehrfachwerten ist nicht für jedes statische und dynamische Feld möglich.

Welche statischen und dynamischen Felder Mehrfachwerte unterstützen, kann der Tabelle im Abschnitt "Verfügbare Felder und Feldtypen" entnommen werden. Von Usern frei definierte Felder, welche keinem der Tabellenwerte zugeordnet werden können, erlauben Mehrfachwerte grundsätzlich.

Wird ein Feld welches keine Mehrfachwerte unterstützt dem Index mit mehreren Werte übergeben, so wird das Dokument dennoch indiziert. Es wird jedoch für das Feld nur ein Wert übernommen, in der Regel der erste Wert welcher für das Feld übergeben wurde. Im Log der Applikation findet sich in diesem Fall eine entsprechende Warnung.

2.3.5. Details zu den Sprachen

Die SmartSearch speichert die kundenunternehmensseitig erfassten Inhalte in einer Vielzahl unterschiedlicher Felder, für deren Definition sie die Prepared Searches bereitstellt. Diesen kann bei der Ausführung eine Sprache übergeben werden, um die Erfassung der Daten sprachabhängig durchzuführen. Die nachfolgende Tabelle zeigt eine Übersicht aller derzeit für die SmartSearch konfigurierten Sprachen inklusive ihrer Kürzel (nach ISO 639-1) und der für sie verfügbaren Features. Die Anwendung der Features erfolgt automatisch bei der Verarbeitung der erfassten Informationen. Weitere Informationen zu den einzelnen Sprachen sind in der Solr-Dokumentation enthalten.

Aktuell ordnet die SmartSearch den Sprachen die folgenden Features zu:

Lowercase

Die interne Persistierung der erfassten Daten erfolgt in Kleinschreibweise. Dies hat keinerlei Auswirkung auf die Ausgabe der Informationen und dient lediglich deren Verarbeitung.

Normalisierung

Die Normalisierung dient der Angleichung ähnlicher Schreibweisen von Wörtern. In skandinavischen Sprachen wird beispielsweise eine Ersetzung der Zeichen æÆäÄöÖøØ (sowie der Varianten aa, ao, ae, oe und oo) zu åÅæÆøØ durchgeführt. Die verschiedenen Schreibweisen blåbärsyltetöj und blaabaersyltetoej ergeben somit die normalisierte Form blåbærsyltetøj.

Stemming

Das Stemming ermöglicht die Verknüpfung verschiedener, morphologischer Varianten eines Worts mit ihrem gemeinsamen Wortstamm. Die Begriffe Wörter, Worte und Wortes besitzen beispielsweise den gemeinsamen Wortstamm Wort.

Stoppwörter

Die Stoppwörter bezeichnen eine Liste von Begriffen, die sehr häufig in einer Sprache vorkommen. Zu ihnen gehören beispielsweise Artikel, Pronomen und Bindewörter. Aufgrund ihrer Häufigkeit sollen sie für den Suchindex nicht in Betracht gezogen werden. Die Auslieferung enthält für jede Sprache eine solche Liste, deren Konfiguration über das SmartSearch-Cockpit möglich ist.

Synonyme

Für Sprachen, die Synonyme zulassen, besteht innerhalb des SmartSearch-Cockpits die Möglichkeit, eine Liste zu erstellen, die einem Begriff andere, ähnliche Wörter zuordnet. Diese Wörter werden bei einer Suche gleich behandelt.

Tabelle 5. Sprachen

Sprache

Kürzel

Lowercase

Normalisierung

Stemming

Stoppwörter

Synonyme

Arabisch

ar

Bengali

be

Bulgarisch

bg

Chinesisch Traditionell

zh-tw

Chinesisch Vereinfacht

zh-cn

Dänisch

da

Deutsch

de

Englisch

en

Estnisch

et

Finnisch

fi

Französisch

fr

Griechisch

gr

Holländisch

nl

Indonesisch

id

Italienisch

it

Japanisch

ja

Koreanisch

ko

Kroatisch

hr

Lettisch

lv

Litauisch

lt

Malaiisch

ms

Norwegisch

no

Polnisch

pl

Portugiesisch

pt

Rumänisch

ro

Russisch

ru

Schwedisch

sv

Serbisch

sr

Slowakisch

sk

Spanisch

es

Thai

th

Tschechisch

cs

Türkisch

tr

Ukrainisch

uk

Ungarisch

hu

Vietnamesisch

vi

2.4. System

Der Bereich System besitzt als einzigen Unterpunkt das Usermanagement. Dieses dient der Erzeugung und Konfiguration von Usern und Gruppen und gliedert sich daher in zwei gleichnamige Reiter. Die folgenden Unterkapitel erläutern die Funktionalitäten der beiden Reiter im Detail.

Ist die User- und Gruppenverwaltung auf Basis von LDAP realisiert, besitzt das SmartSearch-Cockpit ausschließlich einen lesenden Zugriff auf sie. Das Cockpit dient in diesem Fall nur der Auflistung der User und Gruppen, jedoch nicht ihrer Bearbeitung oder Löschung. Lediglich die Verwaltung der Berechtigungen erfolgt auch im LDAP-Fall über das SmartSearch-Cockpit.

hc users
Abbildung 21. Usermanagement

2.4.1. User

Der Zugriff auf das SmartSearch-Cockpit setzt einen aktiven User voraus. Für die initiale Anmeldung existiert daher ein Master-Admin, mit dem weitere User erstellbar sind. Die Berechtigungen eines Users ergeben sich aus seiner Gruppenzugehörigkeit, die während seiner Erzeugung zu definieren ist. Die Erstellung und Verwaltung der User erfolgt im gleichnamigen Reiter des Usermanagements.

Ist das Usermanagement auf Basis von LDAP realisiert, besitzt das SmartSearch-Cockpit ausschließlich lesenden Zugriff auf sie. Die Erstellung, Bearbeitung und Löschung von Usern ist in diesem Fall innerhalb des Cockpits nicht möglich.

hc users
Abbildung 22. Reiter - User

Der Reiter zeigt eine Liste aller bereits bestehender User, die initial lediglich den Master-Admin enthält.

Benutzer anlegen

Für die Erstellung eines neuen Users existiert eine eigene Ansicht, die per Klick auf den Button Neuer User aufrufbar ist.