Zum Inhalt springen

Modul: Search

Das Search-Modul macht die Daten der Plattform schnell und tolerant durchsuchbar. Es setzt auf Elasticsearch und stellt eine dedizierte Suchschicht bereit, die unabhängig vom operativen Schreibpfad arbeitet – so bleiben Suchanfragen auch bei grossen Datenmengen und hoher Last performant.

Eine relationale Datenbank ist stark im konsistenten Schreiben und in präzisen Abfragen, aber nicht dafür gemacht, grosse Bestände tolerant und schnell zu durchsuchen. Deshalb hält das Search-Modul die durchsuchbaren Daten zusätzlich in einem Suchindex. Anwendungen fragen für Suche und Filterung diesen Index ab, nicht die operative Datenbank. Das entkoppelt Lesen und Schreiben und erlaubt es, die Suche unabhängig zu skalieren.

  • Volltextsuche über die indexierten Inhalte – tolerant gegenüber Schreibweisen und Wortformen.
  • Filter und Facetten, mit denen sich Ergebnismengen gezielt einschränken lassen.
  • Feldbasierte Abfragen – etwa die Suche nach einem bestimmten Wert, nach der Existenz eines Feldes oder nach einer Kennung.
  • Globale Suche über mehrere Datenarten hinweg sowie Mehrfachabfragen in einem Durchgang.
  • Scrollen über grosse Ergebnismengen, um auch umfangreiche Treffer stabil auszuliefern.

Was indexiert wird und wie, ist konfigurierbar. Über Index-Konfigurationen wird festgelegt, welche Felder in den Index aufgenommen werden, welchen Datentyp und welche Rolle sie haben (etwa durchsuchbar, filterbar oder als Anzeigespalte). So lässt sich die Suche gezielt auf die jeweilige Domäne zuschneiden, ohne den Code zu ändern.

Die Pflege des Index läuft dabei ereignisgetrieben: Ändern sich Daten in einem Modul, wird der Suchindex entsprechend nachgeführt – über Indexierungsvorgänge, die das Modul über den Nachrichtenbus entgegennimmt. Der Index bleibt so in Deckung mit den operativen Daten, ohne dass jede Anwendung ihn selbst pflegen müsste.

Über die klassische Volltextsuche hinaus unterstützt die Plattform semantische Suche: Neben Zeichenketten lassen sich Inhalte über ihre Bedeutung finden. Im Catalog-Modul werden Produkte dafür als Embeddings (Vektoren) abgebildet, sodass inhaltlich ähnliche Artikel auch dann gefunden werden, wenn die Suchbegriffe nicht wörtlich übereinstimmen. Volltext- und semantische Suche ergänzen sich so zu Treffern, die relevanter sind als reine Wortübereinstimmung.

Das Search-Modul ist ein Querschnittsdienst. Es macht die Daten anderer Module durchsuchbar – etwa Firmen und Personen aus dem Business-Modul, Kunden aus dem Customer-Modul oder Sortimente aus dem Catalog-Modul – und stellt Anwendungen wie einem Bestellportal die schnelle Suche bereit, die für eine gute Nutzererfahrung entscheidend ist.

Als Modul der Service Platform ist das Search-Modul unter /search erreichbar und dokumentiert sich über Swagger. Es ergänzt die relationale Datenhaltung der Plattform um genau die Fähigkeit, die im Commerce oft über Erfolg oder Frust entscheidet: schnell das Richtige finden.