Sparse-Vector-Suche mit ELSER: semantische Suche ohne eigenes Embedding-Modell
AI generated
_doc
_index
Elasticsearch · ELSER · Sparse Vector
Sparse-Vector-Suche mit ELSER
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.

10 Min. Lesezeit ELSER · Sparse Vector Learned Sparse Retrieval

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.

11. FAQ: Sparse-Vector-Suche mit ELSER: Das Wichtigste auf einen Blick

1Was bedeutet ELSER?
Elastic Learned Sparse EncodeR, ein von Elastic trainiertes Modell, das Text automatisch in eine gewichtete Liste relevanter Terme umwandelt, statt einen dichten Vektor zu erzeugen.
2Wie unterscheidet sich ein Sparse Vector von einem Dense Vector?
Ein Dense Vector besteht aus mehreren hundert kontinuierlichen Zahlen ohne direkte menschliche Interpretierbarkeit, ein Sparse Vector ist eine überschaubare Liste konkreter Terme mit Gewichten, die sich direkt nachvollziehen lässt.
3Braucht man für ELSER eine eigene GPU-Infrastruktur?
Nein, das Modell läuft als Inferenz-Endpunkt direkt innerhalb des Elasticsearch-Clusters, ohne separate GPU-Server oder externes Modellhosting.
4Auf welcher Indexstruktur basiert Sparse-Vector-Suche technisch?
Auf derselben invertierten Indexstruktur, die Elasticsearch auch für klassische BM25-Textsuche verwendet, weshalb kein zusätzlicher HNSW-Graph nötig ist.
5Wie richtet man ELSER für die Indexierung ein?
Über eine Ingest-Pipeline mit einem inference-Prozessor, der jedes Dokument vor der Speicherung durch das ELSER-Modell schickt und das Ergebnis im Feldtyp sparse_vector ablegt.
6Muss der Anfragetext manuell in einen Vektor umgewandelt werden?
Nein, die sparse_vector-Query nimmt den Rohtext der Anfrage entgegen und schickt ihn automatisch durch dasselbe ELSER-Modell, das auch beim Indexieren verwendet wurde.
7Funktioniert ELSER gut für deutschsprachige Shops?
Die ursprüngliche Modellgeneration war primär auf Englisch trainiert, neuere Versionen erweitern die Sprachabdeckung, aber die tatsächliche Qualität für Deutsch sollte vor dem produktiven Einsatz gezielt getestet werden.
8Kann man Sparse-Vector-Suche mit klassischer BM25-Suche kombinieren?
Ja, weil beide auf derselben Indexstruktur basieren, lassen sie sich unkompliziert innerhalb einer bool-Query mit jeweils eigenen Gewichten kombinieren.
9Ist ELSER auf OpenSearch verfügbar?
Nein, ELSER ist eine kommerzielle Elastic-Funktion und in dieser Form nicht auf OpenSearch verfügbar, dort sind alternative Modelle oder eigene Embedding-Pipelines nötig.
10Ersetzt ELSER klassische Textsuche vollständig?
Nein, ELSER ergänzt klassische Textsuche um eine semantische Komponente für umschreibende Anfragen, während exakte Artikelnummern- oder SKU-Suchen weiterhin besser mit klassischer Textsuche funktionieren.