Semantische Suche ohne eigenes Embedding-Modell
Dense-Vector-Suche verlangt ein Embedding-Modell, eine Inferenz-Pipeline und meist eine eigene GPU-Infrastruktur, bevor die erste semantische Anfrage überhaupt beantwortet werden kann. Für viele Teams ist genau diese Hürde der Grund, semantische Suche trotz ihrer Vorteile links liegen zu lassen. ELSER, kurz für Elastic Learned Sparse EncodeR, verfolgt einen anderen Ansatz: Statt Text in einen dichten Vektor aus mehreren hundert Zahlen umzuwandeln, erzeugt das Modell eine gewichtete Liste relevanter Terme, vergleichbar mit einer automatisch erweiterten und gewichteten Wortliste. Das Ergebnis lässt sich mit denselben invertierten Indexstrukturen durchsuchen, die Elasticsearch ohnehin für klassische Textsuche verwendet. Dieser Artikel zeigt, wie ELSER technisch funktioniert, wo Sparse Vectors sich von Dense Vectors unterscheiden und wie der praktische Einsatz für Produktsuche ohne eigene Machine-Learning-Infrastruktur aussieht.
Inhaltsverzeichnis
- 1. Die Hürde klassischer Dense-Vector-Ansätze
- 2. Wie ELSER Text in gewichtete Terme umwandelt
- 3. Der Feldtyp sparse_vector und das Inferenz-Mapping
- 4. Unterschied zu Dense-Vector-Ansätzen im Detail
- 5. Die Suchanfrage: text_expansion beziehungsweise sparse_vector Query
- 6. Praktischer Einsatz für Produktsuche ohne eigene ML-Infrastruktur
- 7. Mehrsprachigkeit und die Grenzen von ELSER
- 8. Kombination mit klassischer BM25-Suche in einer Anfrage
- 9. Betriebskosten, Lizenzierung und realistische Erwartungen
- 10. Zusammenfassung
- 11. FAQ
1. Die Hürde klassischer Dense-Vector-Ansätze
Um Dense-Vector-Suche produktiv zu betreiben, muss ein Team zunächst ein passendes Embedding-Modell auswählen oder selbst trainieren, es für die Sprache und Domäne des Shops evaluieren und anschließend eine Inferenz-Pipeline betreiben, die bei jeder Produktänderung und bei jeder Suchanfrage neue Embeddings berechnet. Für viele klassische Backend-Teams im E-Commerce-Umfeld ist das ein fremdes Terrain, das eigenes ML-Know-how, zusätzliche Serverinfrastruktur und laufende Wartung verlangt.
ELSER senkt diese Hürde erheblich, weil das Modell direkt innerhalb von Elasticsearch als Inferenz-Endpunkt betrieben werden kann, ohne separate GPU-Server oder externe Modellhosting-Lösung. Das Modell ist vortrainiert und muss nicht auf domänenspezifische Daten nachtrainiert werden, um brauchbare Ergebnisse zu liefern, was den Einstieg für Teams ohne eigene ML-Infrastruktur drastisch vereinfacht.
2. Wie ELSER Text in gewichtete Terme umwandelt
ELSER analysiert einen Eingabetext und erzeugt daraus eine Liste von Termen mit zugehörigen Gewichten, wobei diese Terme nicht zwingend im Originaltext vorkommen müssen. Eine Produktbeschreibung mit dem Wort Laufschuh kann beispielsweise automatisch mit verwandten, gewichteten Termen wie Sport, Jogging oder Fitness angereichert werden, weil das Modell während seines Trainings gelernt hat, welche Begriffe semantisch zusammenhängen.
Diese Termerweiterung passiert vollautomatisch und ersetzt damit einen großen Teil der Arbeit, die früher in manuell gepflegte Synonymlisten investiert wurde. Das Ergebnis ist konzeptionell eine Art gewichtete Bag-of-Words-Darstellung, bei der jeder Term ein numerisches Gewicht trägt, das seine Relevanz für den ursprünglichen Text ausdrückt, ähnlich wie TF-IDF-Gewichte, jedoch semantisch angereichert statt rein statistisch abgeleitet.
3. Der Feldtyp sparse_vector und das Inferenz-Mapping
In Elasticsearch wird das Ergebnis von ELSER im Feldtyp sparse_vector gespeichert, der intern als eine Menge von Term-Gewicht-Paaren funktioniert und sich technisch auf denselben invertierten Index stützt, den Elasticsearch bereits für klassische Volltextsuche nutzt. Um ELSER automatisch beim Indexieren anzuwenden, richtet man eine Ingest-Pipeline mit einem inference-Prozessor ein, der jedes Dokument vor der Speicherung durch das ELSER-Modell schickt.
Diese enge technische Verwandtschaft zur klassischen invertierten Indexstruktur ist der entscheidende Vorteil gegenüber Dense Vectors: Es wird kein zusätzlicher HNSW-Graph benötigt, und die Suche läuft über dieselben, seit Jahren bewährten und gut optimierten Mechanismen wie eine normale BM25-Anfrage, nur eben mit semantisch angereicherten Termen statt reinen Originalwörtern.
PUT _ingest/pipeline/elser-product-pipeline
{
"processors": [
{
"inference": {
"model_id": ".elser_model_2",
"input_output": {
"input_field": "description",
"output_field": "description_sparse"
}
}
}
]
}
4. Unterschied zu Dense-Vector-Ansätzen im Detail
Während ein Dense Vector aus mehreren hundert bis mehreren tausend kontinuierlichen Zahlenwerten besteht, die für sich genommen keine menschlich interpretierbare Bedeutung haben, ist ein Sparse Vector eine überschaubare Liste konkreter Terme mit Gewichten, die sich direkt nachvollziehen lässt. Diese Interpretierbarkeit erleichtert das Debugging von Suchergebnissen erheblich, weil man nachvollziehen kann, welche Terme zu einem Treffer geführt haben, während bei Dense Vectors nur die Distanz im Raum als Blackbox-Ergebnis bleibt.
Technisch unterscheidet sich auch die Suchstrategie: Dense-Vector-Suche nutzt kNN mit einem Graphalgorithmus wie HNSW, während Sparse-Vector-Suche eine angepasste Scoring-Funktion auf Basis der invertierten Indexstruktur nutzt, die konzeptionell BM25 ähnelt. Das bedeutet auch, dass Sparse-Vector-Suche sich mit klassischer Textsuche in einer einzigen Anfrage kombinieren lässt, ohne zwei komplett getrennte Suchmechanismen zusammenführen zu müssen.
5. Die Suchanfrage: text_expansion beziehungsweise sparse_vector Query
Um eine Sparse-Vector-Suche auszuführen, übergibt man der sparse_vector-Query den Rohtext der Anfrage. Elasticsearch schickt diesen Text automatisch durch dasselbe ELSER-Modell, erzeugt die gewichteten Terme für die Anfrage und vergleicht sie mit den beim Indexieren gespeicherten Termen. Der Entwickler muss sich dabei um keine manuelle Vektorberechnung kümmern, im Gegensatz zur Dense-Vector-Suche, bei der der Anfragevektor typischerweise außerhalb von Elasticsearch berechnet werden muss.
Diese eingebaute Inferenz bei der Anfrage selbst ist einer der praktischen Hauptvorteile von ELSER: Ein Backend-Team kann die semantische Suche komplett innerhalb von Elasticsearch betreiben, ohne eine zusätzliche Anwendung zu bauen, die Anfragetext in Vektoren umwandelt, bevor er an Elasticsearch geschickt wird.
GET products/_search
{
"query": {
"sparse_vector": {
"field": "description_sparse",
"inference_id": ".elser_model_2",
"query": "leiser Standmixer für die Küche"
}
}
}
6. Praktischer Einsatz für Produktsuche ohne eigene ML-Infrastruktur
Für ein Magento-basiertes Shopsystem bedeutet der Einsatz von ELSER konkret, dass keine separate Python-Umgebung, kein GPU-Server und keine eigene Modellwartung nötig sind. Der gesamte Inferenz-Prozess läuft innerhalb des Elasticsearch- oder OpenSearch-Clusters, und die Integration beschränkt sich auf das Einrichten der Ingest-Pipeline sowie die Anpassung der Suchanfrage im bestehenden Suchmodul.
Der Ressourcenbedarf des ELSER-Modells selbst ist dennoch nicht zu unterschätzen: Das Modell benötigt spürbaren zusätzlichen Speicher und Rechenleistung auf den Ingest-Nodes des Clusters, weshalb eine realistische Kapazitätsplanung vor dem produktiven Einsatz sinnvoll ist, besonders wenn große Produktkataloge in mehreren Sprachen gleichzeitig indiziert werden sollen.
7. Mehrsprachigkeit und die Grenzen von ELSER
Die ursprüngliche ELSER-Modellgeneration war primär auf englischsprachige Texte trainiert, was für einen deutschsprachigen Magento-Shop eine wichtige praktische Einschränkung darstellt. Neuere ELSER-Modellversionen erweitern die Sprachabdeckung, dennoch sollte vor einer Produktivnahme an nicht englischsprachigen Katalogen gezielt getestet werden, wie gut die Termerweiterung für die konkrete Zielsprache tatsächlich funktioniert.
Ein weiterer praktischer Punkt ist, dass ELSER als vortrainiertes Modell keine domänenspezifische Terminologie kennt, die in einem Nischenkatalog eine zentrale Rolle spielt, etwa hochspezialisierte Fachbegriffe aus dem B2B-Umfeld. Für solche Fälle bleibt eine Kombination aus klassischer Textsuche mit Synonymlisten und Sparse-Vector-Suche oft die robustere Wahl, statt sich ausschließlich auf ELSER zu verlassen.
8. Kombination mit klassischer BM25-Suche in einer Anfrage
Weil Sparse-Vector-Suche auf derselben invertierten Indexstruktur wie BM25 basiert, lässt sie sich technisch unkompliziert innerhalb einer bool-Query mit klassischen Match-Queries kombinieren, jeweils mit eigenen Gewichten für beide Anteile. Das erlaubt ein Vorgehen, bei dem exakte Begriffstreffer weiterhin stark gewichtet werden, während die semantische Erweiterung zusätzliche, thematisch passende Treffer ergänzt, die bei reiner Textsuche verloren gegangen wären.
In der Praxis bewährt sich ein Vorgehen, bei dem man zunächst die Gewichtung zwischen BM25- und Sparse-Vector-Anteil anhand konkreter, dokumentierter Suchanfragen aus den Analytics-Daten des Shops kalibriert, statt pauschale Standardgewichte zu übernehmen, da sich das optimale Verhältnis je nach Sortiment und typischem Suchverhalten der Kundschaft deutlich unterscheiden kann.
9. Betriebskosten, Lizenzierung und realistische Erwartungen
ELSER ist Teil der kommerziellen Elastic-Funktionen und erfordert eine entsprechende Lizenzstufe, was bei einem geplanten Umstieg frühzeitig in die Kostenplanung einbezogen werden sollte, insbesondere bei einem Wechsel zu OpenSearch, wo ELSER in dieser Form nicht verfügbar ist und alternative Modelle oder eigene Embedding-Pipelines nötig werden. Diese Lizenzabhängigkeit ist ein zentraler Unterschied zu selbst gehosteten Dense-Vector-Modellen, die sich grundsätzlich auf beiden Plattformen einsetzen lassen.
Realistisch betrachtet ersetzt ELSER klassische Textsuche nicht vollständig, sondern ergänzt sie um eine semantische Komponente, die vor allem bei ungenauen oder umschreibenden Suchanfragen ihren Wert zeigt. Für exakte Artikelnummern-, SKU- oder Modellsuchen bleibt klassische Textsuche weiterhin die zuverlässigere und schnellere Wahl, weshalb eine durchdachte Kombination beider Ansätze der pragmatischste Weg ist.
| Kriterium | Dense Vector (eigenes Modell) | Sparse Vector (ELSER) | Praxisrelevanz |
|---|---|---|---|
| ML-Infrastruktur | Eigenes Modell, oft GPU nötig | Läuft als Inferenz-Endpunkt in Elasticsearch | ELSER senkt Einstiegshürde deutlich |
| Interpretierbarkeit | Blackbox-Zahlenvektor | Nachvollziehbare gewichtete Terme | Sparse Vector erleichtert Debugging |
| Suchmechanismus | kNN mit HNSW-Graph | Angepasstes Scoring auf invertiertem Index | Sparse Vector kombiniert leicht mit BM25 |
| Sprachabdeckung | Modellwahl frei wählbar | Historisch primär Englisch, wird erweitert | Vor Einsatz je Zielsprache testen |
| Lizenzierung | Modellabhängig, oft frei | Kommerzielle Elastic-Funktion | Bei OpenSearch-Wechsel relevant prüfen |
Mironsoft
Suchindex-Setup, Relevanz-Tuning und Magento-Suche
Magento-Suche, die die falschen Produkte zuerst zeigt?
Wir richten Elasticsearch oder OpenSearch für Magento sauber ein, tunen Relevanz und Facetten auf das tatsächliche Sortiment und optimieren Indexierungsprozesse für große Kataloge.
Relevanz-Tuning
Suchergebnisse und Facetten auf die tatsächlichen Kundenbedürfnisse abstimmen.
Such-Migration
Umstieg von Solr oder MySQL-Suche auf Elasticsearch/OpenSearch sauber begleiten.
Index-Performance
Indexierungsprozesse für große Kataloge zuverlässig und performant gestalten.
10. Zusammenfassung
Sparse-Vector-Suche mit ELSER: Das Wichtigste auf einen Blick
Grundprinzip
ELSER wandelt Text automatisch in eine gewichtete Liste relevanter Terme um, statt einen dichten Zahlenvektor zu erzeugen, und nutzt dafür die invertierte Indexstruktur.
Praktischer Vorteil
Keine eigene ML-Infrastruktur nötig, das Modell läuft als Inferenz-Endpunkt direkt innerhalb von Elasticsearch für Indexierung und Anfrage.
Grenzen
Historisch primär englischsprachig trainiert, kennt keine domänenspezifische Fachterminologie und ist an eine kommerzielle Elastic-Lizenz gebunden.
Empfehlung
ELSER ergänzt klassische BM25-Suche sinnvoll für umschreibende Anfragen, ersetzt sie aber nicht vollständig, besonders nicht bei exakten SKU-Suchen.