GSB 7.0 Standardlösung

Solr-Suche GSB SL

Vorschlagssuche

Die Vorschlagssuche ist eine ajaxbasierte (Javascript) Möglichkeit, die tatsächlich im zu durchsuchenden Index vorhandenen Begriffe als Vorschläge während der Benutzereingabe anzuzeigen und auswählbar zu machen.
Dem Benutzer werden also bereits während der Eingabe Vorschläge für eine mögliche Suche angeboten, die auch tatsächlich Treffer
erzeugen würde. In der Standardlösung des GSB wurde die Vorschlagssuche in das Servicesucheformular integriert. Die Aktivierung dieser Funktionalität erfolgt über ein Javascript, welches eine Suche im Hintergrund per Ajax ausführt und deren Ergebnisse als Vorschläge am Texteingabefeld generiert.

Folgendes Javascript wird dazu verwendet:
/standardlsg/SiteGlobals/Functions/JavaScript/Addon_Autosuggest
Dieses Javascript führt im Hintergrund eine Suche aus, welche in einem dedizierten Suchformular definiert wird.

Das zu verwendende Vorschlagssucheformular wir unter dem Textklassifizierer "search" im Initialisierungsjavascript eingebunden:
/standardlsg/SiteGlobals/Functions/JavaScript/Init

Das folgende Formular wird für die Vorschlagssuche genutzt und ausgeführt:
/standardlsg/SiteGlobals/Forms/Suche/Autosuggest_Formular

Facettierte Suche (Suchfilter)

Eine facettierte Suche ermöglicht die nachträgliche Filterung der Suche. Die facettierte Suche wurde in der Standardlösung in der Terminsuche umgesetzt,  die über den Navigationsknoten
/standardlsg/DE/Aktuelles/Termine/termine_node

zu erreichen ist.
Es wurden zwei Facetten definiert:

  1. Ort
  2. Startdatum

Daher ist es möglich die Treffer beispielsweise noch weiter über den Ort, oder den Monat einzuschränken.
Die Konfiguration der zurückzuliefernden Facetten geschieht in der auszuführenden Formular-Action des Formulars:
/standardlsg/SiteGlobals/Forms/Archiv/Termine/Termine_Formular
Die Action
/standardlsg/SiteGlobals/Forms/_components/Actions/TermineArchiv_Suche
definiert dafür die benötigten Facetten über den Ort (cl2Location_Ortsangabe) und das Startdatum des Termins (startDate_dt).
Die Ausgabe der Facetten erfolgt im Zielknoten des Formulars, genauer gesagt in dessen Navigationsziel über eine Generische JSP:
/standardlsg/SiteGlobals/Functions/Solr/Suche/Ergebnisdarstellung/Termine/Facettierung
Darin werden die Filterlinks auf die definierten Facetten mit GSB-Bordmitteln verarbeitet und ausgegeben, sodass in der Marginalspalte der ausgeführten Suche die Suche weiter eingeschränkt werden kann.

Zusätzlich wurde noch eine Facettierung in die Service-,bzw. Expertensuche eingebunden, welche im Detail hier beschrieben wird: Expertensuche


"Meinten Sie"

Die "Meinten Sie" Suche ermöglicht die Korrektur von Tippfehlern. So führt beispielweise eine Suche nach
"publikatiohm" zu einem Vorschlag "publikation", sodass der Benutzer darauf hingewiesen wird, dass es für seine Eingabe zwar keinen Treffer gibt, für einen
Begriff, der ähnlich ist, aber schon.
Die Genauigkeit für den Vorschlag wird in einer Konfigurationsdatei der Solrapplikation angegeben, sodass die zu verwendende "Unschärfe" dort definiert werden kann.
Genauer gesagt wird dies in der solrconfig.xml im Verzeichnis "gsb5.0/basis/config/solr/multicore/MANDANT/conf" des GSB-Kerns definiert:

<syntaxhighlight lang="xml" enclose="div"> <str name="accuracy">0.6</str> </syntaxhighlight>
Je kleiner der Wert hier ist, desto unschärfer werden Vorschläge generiert.

Die Ausgabe des "Meinten Sie" Vorschlags, sofern dieser vorhanden ist, wird analog zur Ausgabe der Facetten in einer Generischen JSP vorgenommen, welche im Navigationsziel
eingebunden wird, das aufgerufen wird, wenn die Suche ausgeführt wurde:
/standardlsg/SiteGlobals/Functions/Solr/Suche/Ergebnisdarstellung/Expertensuche/MeintenSie_TemplateQueryString

Phonetische Suche

Die phonetische Suche bewirkt das phonetisch ähnliche Begriffe gefunden werden können. In der Standardlösung wird dies in der Suche nach Reden konfiguriert.
Gewährleistet wird dies dadurch dass die Suche gegen ein dediziertes Feld im Solr-Index durchgeführt wird, welches die Inhalte phonetisch aufbereitet.
In diesem Fall ist der Name dieses Feldes:
cl2Speaker_Redner_phonetic
Dieses Feld wird in der schema.xml konfiguriert und bindet die Kölner Phonetik als Filter bei der Indexierung im verwendeteten Feldtyp
"phonetic" ein: <syntaxhighlight lang="xml" enclose="div"> <filter class="solr.PhoneticFilterFactory" encoder="ColognePhonetic" inject="false"/> </syntaxhighlight>
In der Formular-Action wird dann die Suche gegen dieses Feld konfiguriert:
/standardlsg/SiteGlobals/Forms/_components/Actions/RedenArchiv_Suche

Synonymsuche

Die Synonymsuche muss mandantespezifisch analog zur phonetischen Suche über die Suche gegen ein dafür vorgesehenes Feld erstellt werden, da hierfür eine
Liste der domänenspezifischen Synonyme berücksichtigt werden muss.
Eine (auskommentierte) Vorlage dafür ist in der schema.xml im Verzeichnis

gsb5.0/basis/config/solr/multicore/MANDANT/conf

des GSB-Kerns enthalten:

<syntaxhighlight lang="xml" enclose="div">

 <copyField source="*_text" dest="content_synonym"/>  <copyField source="*_str" dest="content_synonym"/> <copyField source="*_blob" dest="content_synonym"/> <copyField source="*_metadatablob" dest="content_synonym"/>

</syntaxhighlight>

Diese Felddefinition besagt, dass Inhalte in das Feld content_synonym integriert werden, welches wiederum vom Typ
"synonym" ist. In der zugehörigen Feldtypedefinition wird ein Filter definiert, welcher die indexierten Inhalte anreichert, um die in einer Datei definierten Synonyme (synonyms.txt):
Die Suche müsste also in diesem Beispiel gegen das Feld content_synonym ausgeführt werden.

Highlighting

Das Highlighting der Sucheregebnisse wird konfiguriert in einem Konfigurationsdokument, welches in die jeweilige Formular-Action eingehängt wird.
Darin wird definert, wie bspw. das Highlighting mit HTML Mitteln bewerkstelligt wird und wie groß der anzuzeigende Ausschnitt sein soll.

In der Standardlösung wurde dies an folgender Stelle vorgenommen:
/standardlsg/SiteGlobals/Functions/Solr/Suche/Konfiguration/SuchwortHighlighting

Benennung der durchsuchbaren Felder im Index

Die im Solr-Index vorliegenden durchsuchbaren Felder werden in der schema.xml Datei der Solr-Applikation definiert. Prinzipiell gilt hierbei das folgende Namensschema:

Propertyname_typ. In der folgenden Tabelle werden die Propertytypen und deren Zuordung im Index näher definiert:

Property-TypSuffixFeldname im EditorIndexfeldname
int_intshouldNotBeIndexedshouldNotBeIndexed_int
date_dtdateOfIssuedateOfIssue_dt
Richtext_texttitletitle_text
String_strexternalIDexternalID_str
Blob_blobpublicationFilepublicationFile_blob

Zusätzlich zu diesen Properties gibt es bspw. noch das Feld content, welches die inhaltstragenden Properties enthält.

Weiterhin werden noch diverse technische Properties, wie z.B. die Id des Coremedia Dokumentes in den Index geschrieben. Diese können hier nachgeschlagen werden.

Bei den klassifizierten Linklisten ergibt sich das Namensschema aus den Werten der Listeneinträge. Bspw. cl2Categories_Themen für ein mit "Themen" klassifiziertes Feld in der klassifizierten Linkliste cl2Categories.