09.01.2023 | Marco Orts
Die SAP HANA-Plattform ist eine leistungsstarke In-Memory-Datenbank, die es Unternehmen ermöglicht, große Datenmengen in Echtzeit zu analysieren und zu verarbeiten. Eine der wichtigsten Funktionen der HANA-Plattform ist die SAP HANA Volltextsuche, mit der Benutzer nach Wörtern und Phrasen in einer großen Menge von Textdaten suchen können.
Dies kann ein wertvolles Werkzeug sein, um bestimmte Informationen innerhalb eines Dokuments oder einer Sammlung von Dokumenten zu finden und ist ein wichtiger Bestandteil vieler HANA-gestützter Anwendungen.
Zu den wichtigsten Funktionen der SAP HANA Volltextsuche gehören:
Diese und andere Funktionen machen die Volltextsuchmaschine auf HANA zu einem leistungsstarken und flexiblen Werkzeug, mit dem Sie in großen Mengen von Textdaten schnell die gewünschten Informationen finden.
Im Folgenden wollen wir ein wenig mehr auf die technischen Bestandteile einer Volltextsuche in einer Anwendung eingehen.
Eine einfacher Suchservice in der SAP HANA kann mit wenigen Schritten erstellt werden. Hierbei brauchen wir die folgenden Objekte:
Die Tabelle enthält die durchsuchbaren Daten möglichst vollständig, das heißt, dass wir im CDS-View so wenig zusätzliche Verknüpfungen wie möglich generieren wollen. Abgesehen davon dürfte sich hier keiner überrascht zeigen, dass wir eine Tabelle als Grundlage brauchen 😉
Auf diese Tabelle bauen wir dann mit einem CDS-View auf, der als Träger des Suchmodells dient, aber auch einen einfachen Weg bietet die Suche als XS-App zu exponieren. Als Letztes gibt uns der CDS-View noch die Möglichkeit, Daten zu filtern oder mit Joins und Associations weitere Informationen bereitzustellen. Dabei gilt allerdings, dass Daten in Assoziationen nicht durchsuchbar sind.
Das Suchmodell wird über einen Datenbankaufruf erstellt und beinhaltet alle relevanten Informationen den Suchparametern. Wir werden hier später noch einmal die Details diskutieren, denn das Suchmodell ist das Herzstück einer SAP HANA Volltextsuche.
Zuletzt wollen wir die Suche noch als OData-Service exponieren. Dazu nutzen wir eine XS-App auf der HANA und können durch die Anlage von drei Artefakten den Zugriff ermöglichen. Das läuft völlig analog zu der Exponierung von beliebigen anderen CDS-Views und Existenz eines Suchmodells reicht aus, um diese Funktionalität im OData-Service bereitzustellen.
In SAP HANA sind CDS-Views (Core Data Services) eine Möglichkeit, Daten in einem standardisierten Format zu definieren und darzustellen. CDS-Views basieren auf SQL-Anweisungen und ermöglichen es Entwicklern, die Daten zu definieren, die offengelegt werden sollen, sowie die Struktur und das Format dieser Daten.
CDS-Ansichten können mit einer Kombination aus SQL und HANA-spezifischen Annotationen erstellt werden. Annotationen sind zusätzliche Informationen, die zu einer CDS-Ansicht hinzugefügt werden können, um detailliertere Informationen über die Daten und ihre Darstellung zu liefern. Beispielsweise können Annotationen verwendet werden, um die Datentypen der Spalten in einer CDS-Ansicht zu definieren oder um anzugeben, welche Spalten in einem OData-Dienst bereitgestellt werden sollen.
Wir benutzen hier eine CDS-View als Basis für die Suche und erweitern diesen im nächsten Schritt mit einem Suchmodell.
Das Suchmodell wird über den Aufruf der Systemfunktion „esh_config“ angelegt und bestimmt das Verhalten der Suche. Es wird eingestellt, welche Felder durchsucht werden sollen und welches Gewicht diese Felder bekommen. So kann Einfluss auf die angezeigte Reihenfolge der Suchergebnisse genommen werden. Weitere Einstellungen sind die Fuzzy-Search bei Textfeldern, die es ermöglicht kleinere Rechtschreibfehler und Buchtsabenverwechsler zu ignorieren. Dieser Parameter muss allerdings vorsichtig kalibriert werden, da eine zu große Toleranz zu unsinnigen Suchergebnissen führt.
Eine wichtige Einstellung ist das Term Mapping, welches es ermöglicht, Synonyme und sinnverwandte Begriffe mehr oder weniger austauschbar zu verwenden. Mit den Annotationen „Search.termMappingDictionary“ und „Search.termMappingListID“ kann eine Tabelle angegeben werden. Dort werden Suchbegriffe mit Synonymen und anderen ähnlichen Begriffen eingetragen. So kann man zum Beispiel „Weißbier“ und „Weizenbier“ durch die Suche gleich behandeln lassen.
Es ist aber auch möglich, ähnliche Begriffe mit einem geringeren Gewicht zu versehen und so Oberbegriffe oder andere begriffliche Nähebeziehungen abzubilden. So kann man bei einer Suche nach „Nektarinen“ mit einem geringeren Gewicht auch „Pfirsiche“ anzeigen lassen oder umgekehrt. Über die Angaben in „Search.termMappingListID“ lässt sich differenzieren, welche Einträge aus der Term Mapping Tabelle für bestimmte Felder genutzt werden sollen.
Ein zweites interessantes Feature ist die Anzeige sogenannter Facetten. Hierbei handelt es sich um Zusatzinformationen zu den Suchergebnissen, die angeben, wie viele Ergebnisse mit einer bestimmten Ausprägung eines Feldes es gibt. So kann dann die Suche leicht verfeinert werden, nachdem man die Information erhält, dass eine bestimmte Marke 23 Ergebnisse zur Suchanfrage ergibt. Diese Einstellung ist mit der Annotation „EnterpriseSearch.filterFacet.default“ möglich. Bei vielen Feldern macht es Sinn mit der Annotation „Consumption.labelElement“ ein Feld mit dem entsprechenden Beschreibungstext zu hinterlegen. Dieser wird dann auch in der Facette übertragen und kann direkt angezeigt werden.
Im Folgenden ist eine Beispieldarstellung der Suchfacetten by www.ergowerk.de zu sehen.
SAP HANA XS-Apps können OData-Dienste bereitstellen, die es anderen Anwendungen ermöglichen, auf die in HANA gespeicherten Daten zuzugreifen und sie zu nutzen. Dies kann nützlich sein, um einen konsistenten und standardisierten Weg für andere Anwendungen zu schaffen, um auf die Daten in HANA zuzugreifen, was es einfacher macht, HANA-basierte Anwendungen mit anderen Systemen zu integrieren. Auf diese Art wollen wir unseren CDS-View als Suchschnittstelle bereitstellen.
Um einen OData-Service von einer XS-App aus bereitzustellen, muss die XS-App mithilfe des SAP HANA XS OData-Entwicklungsmodells erstellt werden. Hierzu werden nur drei Artefakte auf der HANA-Datenbank angelegt und schon ist unsere Suche über eine URL erreichbar!
Wir hoffen, dass Sie nun einen verbesserten Überblick über die SAP HANA Volltextsuche haben und unsere Tipps und Tricks schon bald selbst anwenden können!
Sollte Sie weitere Fragen zum Thema haben, dann kontaktieren Sie uns – Unsere Berater und Entwickler helfen gerne weiter!