[{"data":1,"prerenderedAt":712},["ShallowReactive",2],{"blog-splade-learned-sparse-retrieval-de":3},{"slug":4,"published":5,"updated":6,"minutes":7,"category":8,"tags":9,"keywords":15,"about":25,"sources":35,"cover":66,"og":67,"expertise":68,"locales":69,"lang":71,"title":73,"description":74,"coverAlt":75,"metaTitle":76,"takeaways":77,"faq":83,"toc":99,"blocks":127,"others":458},"splade-learned-sparse-retrieval","2026-09-28","2026-10-01",8,"rag",[10,11,12,13,14],"SPLADE","Sparse retrieval","BM25","Hybrid search","Elasticsearch",[16,10,17,18,19,20,21,22,23,24],"learned sparse retrieval","SPLADE++ vs BM25","neural sparse search","Elasticsearch sparse_vector","ELSER","rank_features","OpenSearch neural sparse","learned sparse retrieval index size","sentence-transformers sparse encoder",[26,29,32],{"name":27,"url":28},"Okapi BM25","https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FOkapi_BM25",{"name":30,"url":31},"Inverted index","https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FInverted_index",{"name":33,"url":34},"BERT (language model)","https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FBERT_%28language_model%29",[36,39,42,45,48,51,54,57,60,63],{"title":37,"url":38},"naver\u002Fsplade on GitHub","https:\u002F\u002Fgithub.com\u002Fnaver\u002Fsplade",{"title":40,"url":41},"SPLADE++ (arXiv 2205.04733)","https:\u002F\u002Farxiv.org\u002Fabs\u002F2205.04733",{"title":43,"url":44},"naver\u002Fsplade-v3 model card","https:\u002F\u002Fhuggingface.co\u002Fnaver\u002Fsplade-v3",{"title":46,"url":47},"Static pruning for learned sparse indexes (arXiv 2304.12702)","https:\u002F\u002Farxiv.org\u002Fabs\u002F2304.12702",{"title":49,"url":50},"OpenSearch blog: faster semantic sparse retrieval in 2.12","https:\u002F\u002Fopensearch.org\u002Fblog\u002FA-deep-dive-into-faster-semantic-sparse-retrieval-in-os-2-12\u002F",{"title":52,"url":53},"OpenSearch docs: sparse encoding processor","https:\u002F\u002Fdocs.opensearch.org\u002Flatest\u002Fingest-pipelines\u002Fprocessors\u002Fsparse-encoding\u002F",{"title":55,"url":56},"Elastic docs: sparse_vector field type","https:\u002F\u002Fwww.elastic.co\u002Fdocs\u002Freference\u002Felasticsearch\u002Fmapping-reference\u002Fsparse-vector",{"title":58,"url":59},"Elastic docs: ELSER","https:\u002F\u002Fwww.elastic.co\u002Fdocs\u002Fexplore-analyze\u002Fmachine-learning\u002Fnlp\u002Fml-nlp-elser",{"title":61,"url":62},"Elastic Search Labs: ELSER v2, part 2","https:\u002F\u002Fwww.elastic.co\u002Fsearch-labs\u002Fblog\u002Fintroducing-elser-v2-part-2",{"title":64,"url":65},"Sentence Transformers: sparse encoder usage","https:\u002F\u002Fsbert.net\u002Fdocs\u002Fsparse_encoder\u002Fusage\u002Fusage.html","\u002Fimages\u002Fblog\u002Fsplade-learned-sparse-retrieval\u002Fcover.webp","\u002Fimages\u002Fblog\u002Fsplade-learned-sparse-retrieval\u002Fog.jpg","ai-engineer",[70,71,72],"en","de","hu","SPLADE und gelernte spärliche Suche in der Praxis: BM25, Indexgröße, Latenz","Gelernte spärliche Suche: wie SPLADE Begriffe erweitert, Modelle und Lizenzen, Indexgröße und Latenz, Engine-Unterstützung und wann es BM25 schlägt.","Ein Wortstreifen fächert sich in viele dünne Balken auf, wenige hohe speisen einen Karteikasten.","SPLADE und gelernte spärliche Suche · Balázs Csorba",[78,79,80,81,82],"Gelernte spärliche Suche behält den invertierten Index von BM25, lernt aber Termgewichte und ergänzt Erweiterungsbegriffe, sodass Dokumente auch Anfragen mit anderen Wörtern treffen.","Auf der BEIR-Teilmenge mit 13 Datensätzen erreichte SPLADE++ etwa 50,5 bis 50,7 mittleres nDCG@10 gegenüber 43,7 für BM25, und SPLADE++ plus BM25 kam auf 52,1, Fusion bringt also weiterhin etwas.","Naver stellt seine eigenen SPLADE-Checkpoints unter CC BY-NC-SA 4.0, was kommerzielle Nutzung ausschließt; Apache-2.0-Neuveröffentlichungen und ELSER sind die üblichen Auswege.","Die Kosten sind real, aber beherrschbar: OpenSearch maß den Index-Scan der Doc-only-Variante bei etwa dem 1,8-Fachen von BM25, und statisches Pruning bringt doppelte Geschwindigkeit bei höchstens 2 Prozent Qualitätsverlust.","Elasticsearch und OpenSearch betreiben gelernte spärliche Vektoren auf dem invertierten Index und fusionieren sie mit BM25 oder dichten Treffern; messen Sie mit Ihren Anfragen, bevor Sie einen zweiten Retriever ergänzen.",[84,87,90,93,96],{"q":85,"a":86},"Was ist gelernte spärliche Suche?","Ein Suchverfahren, das Text als spärlichen Vektor von Vokabelbegriffen mit gelernten Gewichten darstellt, einschließlich Erweiterungsbegriffen, die im Text nicht vorkommen. Es läuft auf einem normalen invertierten Index wie BM25, trifft aber verwandte Formulierungen ähnlich wie ein dichtes Modell.",{"q":88,"a":89},"Ist SPLADE besser als BM25?","Auf Benchmarks außerhalb der Trainingsdomäne meist ja: SPLADE++ erreichte auf 13 BEIR-Datensätzen im Schnitt etwa 50,7 nDCG@10 gegenüber 43,7 für BM25. Es ist nicht überall besser, und die Kombination mit BM25 lag noch höher. Testen Sie mit Ihren eigenen Anfragen, besonders wenn exakte Bezeichner dominieren.",{"q":91,"a":92},"Darf man SPLADE kommerziell nutzen?","Navers offizielle SPLADE-Checkpoints und das Repository stehen unter CC BY-NC-SA 4.0, also nicht-kommerziell. Es gibt Apache-2.0-Neuveröffentlichungen der Community wie Qdrant\u002FSplade_PP_en_v1, und ELSER von Elasticsearch sowie die eigenen spärlichen Modelle von OpenSearch sind Alternativen. Prüfen Sie die Lizenz genau des Checkpoints, den Sie einsetzen.",{"q":94,"a":95},"Wie viel langsamer ist gelernte spärliche Suche als BM25?","Im Benchmark von OpenSearch durchsuchte die Doc-only-Variante den Index mit etwa 5,15 ms pro Million Dokumente gegenüber 2,80 ms bei BM25, also etwa das 1,8-Fache. Der Bi-Encoder-Modus, der pro Anfrage ein Modell ausführt, war deutlich langsamer. Token-Pruning und eine zweiphasige Anfrage verkleinern den Abstand.",{"q":97,"a":98},"Unterstützt Elasticsearch Suche im Stil von SPLADE?","Ja. Elasticsearch hat den Feldtyp sparse_vector und ein eigenes gelerntes spärliches Modell, ELSER, das nur Englisch beherrscht und die ersten 512 Tokens eines Felds kodiert. Token-Pruning ist seit 9.1 standardmäßig aktiv, und RRF kann ELSER mit BM25 oder dichten Retrievern fusionieren.",[100,103,106,109,112,115,118,121,124],{"id":101,"title":102},"what-learned-sparse-retrieval-is","Was gelernte spärliche Suche ist",{"id":104,"title":105},"how-splade-expands","Wie SPLADE Text erweitert",{"id":107,"title":108},"the-model-family-and-licenses","Die Modellfamilie und ihre Lizenzfalle",{"id":110,"title":111},"the-efficiency-reality","Die Effizienz in der Praxis: Indexgröße und Latenz",{"id":113,"title":114},"engine-support","Unterstützung in Elasticsearch und OpenSearch",{"id":116,"title":117},"when-learned-sparse-beats-bm25","Wann es BM25 schlägt und wann nicht",{"id":119,"title":120},"training-and-domain-adaptation","Training und Domänenanpassung",{"id":122,"title":123},"a-practical-checklist","Eine praktische Checkliste",{"id":125,"title":126},"sources","Quellen",[128,136,145,148,151,159,162,163,170,176,179,186,189,190,201,213,286,287,292,296,301,314,315,332,351,364,367,368,371,378,379,388,391,399,400,417,425,426],{"type":129,"content":130},"paragraph",[131,135],{"tag":132,"children":133},"strong",[134],"Gelernte spärliche Suche"," behält die Mechanik von BM25, einen invertierten Index aus Vokabelbegriffen, ersetzt aber handabgestimmte Termstatistiken durch Gewichte, die ein Sprachmodell lernt, und ergänzt Erweiterungsbegriffe, die im Text nie vorkommen. SPLADE ist die bekannteste Familie. Ein Dokument über einen „Edelstahl-Kugelhahn“ kann so eine Anfrage nach einem „korrosionsbeständigen Absperrventil“ treffen, während Index, Suchmaschine und exakter Begriffsabgleich dieselben bleiben, die Sie schon betreiben.",{"type":129,"content":137},[138,139,144],"Dieser Artikel behandelt, wie SPLADE Text erweitert, die Modellfamilie und ihre Lizenzfalle, was Index und Anfragen kosten, wie Elasticsearch und OpenSearch es betreiben und wann es BM25 oder eine dichte Hybridsuche schlägt. Wo spärliche Suche in einer vollständigen RAG-Pipeline sitzt, steht in ",{"tag":140,"to":141,"children":142},"link","\u002Fblog\u002Frag-pipeline-chunking-hybrid-search-reranking",[143],"RAG-Pipelines: Chunking, hybride Suche und Reranking","; die Zahlen gelten Stand Oktober 2026.",{"type":146,"level":147,"id":101,"text":102},"heading",2,{"type":129,"content":149},[150],"Es ist Suche in BM25-Form mit gelernten Gewichten und gelernter Vokabelerweiterung. Jedes Dokument und jede Anfrage wird zu einem Vektor über dem Vokabular des Modells, überwiegend Nullen, mit positiven Gewichten auf den wichtigen Begriffen, einschließlich verwandter Begriffe, die das Modell ergänzt. Weil der Vektor spärlich und nach Begriffen geschlüsselt ist, passt er in einen invertierten Index und behält die Nachvollziehbarkeit der Schlüsselwortsuche: Sie sehen, welche Begriffe getroffen haben.",{"type":129,"content":152},[153,154,158],"Die Gewinne zeigen sich vor allem außerhalb der Trainingsdomäne. Im SPLADE++-Paper erreichte auf 13 BEIR-Datensätzen BM25 im Schnitt 43,7 nDCG@10, Contriever 47,5, ColBERTv2 49,7 und SPLADE++ 50,5 bis 50,7; die Summe der Werte von SPLADE++ und BM25 kam auf 52,1, die beiden ergänzen sich also weiterhin (",{"tag":155,"href":41,"children":156},"a",[157],"SPLADE++","). In der Domäne, auf MS MARCO, meldet dasselbe Paper BM25 mit 18,4 MRR@10 gegenüber 38,0 für SPLADE++.",{"type":129,"content":160},[161],"Dichte Retriever lösen ein ähnliches Problem auf andere Weise: Sie bilden Text auf einige hundert oder tausend kontinuierliche Dimensionen ab und vergleichen per Vektorähnlichkeit. Sie sind stark bei Bedeutung und schwach bei seltenen exakten Begriffen, und ihre Treffer sind schwer zu erklären. Gelernte spärliche Suche liegt dazwischen: Sie behält exakten Begriffsabgleich und ein einsehbares Vokabular und leiht sich das Sprachmodell nur, um zu entscheiden, welche Begriffe zählen und welche verwandten Begriffe dazukommen.",{"type":146,"level":147,"id":104,"text":105},{"type":129,"content":164},[165,166,169],"SPLADE nutzt den Kopf für maskierte Sprachmodellierung von BERT, der für jedes Eingabetoken bereits vorhersagt, wie wahrscheinlich jeder Vokabelbegriff an dieser Stelle ist. Es leitet diese Werte durch eine ReLU und eine logarithmische Sättigung, bildet das Maximum über die Eingabetokens und erhält ein Gewicht pro Vokabelbegriff, 30.522 beim BERT-Vokabular (",{"tag":155,"href":44,"children":167},[168],"SPLADE-v3","). Ein Sparsity-Regularisierer drückt im Training die meisten Gewichte auf null, sodass jeder Text nur seine wichtigen Begriffe und eine begrenzte Zahl von Erweiterungen behält.",{"type":171,"src":172,"alt":173,"wide":174,"caption":175},"image","\u002Fimages\u002Fblog\u002Fsplade-learned-sparse-retrieval\u002Fdiagram-8.webp","Wie SPLADE Text in einen spärlichen Vektor verwandelt Fünf Schritte von links nach rechts: der Eingabetext; ein BERT-Kopf für maskierte Sprachmodellierung bewertet jeden Vokabelbegriff für jedes Eingabetoken; ReLU und logarithmische Sättigung halten die Gewichte positiv und gedämpft; Max-Pooling über die Tokens ergibt ein Gewicht pro Vokabelbegriff, wobei ein Sparsity-Regularisierer die meisten auf null hält; und der entstehende spärliche Vektor mit 30.522 Dimensionen wird in einem normalen invertierten Index gespeichert.",true,"Die Erweiterungsbegriffe kommen aus dem Sprachmodell, aber Index und Suchmaschine sind dieselben, die BM25 nutzt.",{"type":129,"content":177},[178],"Bei der Erweiterung geht auch etwas schief. Ein auf Webfragen trainiertes Modell kann Begriffe ergänzen, die im allgemeinen Englisch plausibel, in Ihrer Domäne aber irreführend sind, etwa wenn es einen Produktlinien-Namen einem nicht verwandten Alltagswort zuordnet. Die wichtigsten Erweiterungsbegriffe für eine Stichprobe eigener Dokumente auszugeben, wie im Ausschnitt unten, dauert Minuten und zeigt schnell, ob das Modell Ihr Vokabular versteht oder angepasst werden muss.",{"type":129,"content":180},[181,182,185],"Die Stärke des Regularisierers ist der wichtigste Regler: Stärkere Regularisierung bedeutet weniger Begriffe ungleich null, einen kleineren Index und schnellere Anfragen, zu einem gewissen Qualitätspreis. Navers eigenes Repository beschreibt SPLADE genau deshalb als „eher eine Klasse von Modellen als ein Modell an sich“ (",{"tag":155,"href":38,"children":183},[184],"naver\u002Fsplade","). Anfrage und Dokument lassen sich auch unterschiedlich kodieren, was die effizienten und Doc-only-Varianten unten ausnutzen.",{"type":187,"code":188},"code","# Encode with a learned sparse model and inspect the expansion terms (sentence-transformers SparseEncoder)\nfrom sentence_transformers import SparseEncoder\n\nmodel = SparseEncoder(\"Qdrant\u002FSplade_PP_en_v1\")        # Apache-2.0 re-host; check the license you deploy\ndoc = model.encode_document([\"Stainless steel ball valve DN50, PN40, threaded ends\"])\nquery = model.encode_query([\"corrosion resistant shut-off valve 2 inch\"])\n\nfor token, weight in model.decode(doc[0], top_k=12):    # expansion terms that were never in the text\n    print(f\"{token:>14}  {weight:.2f}\")\nprint(model.similarity(query, doc))                     # dot product over the shared vocabulary",{"type":146,"level":147,"id":107,"text":108},{"type":129,"content":191},[192,193,195,196,200],"Auf SPLADE v2 folgte SPLADE++, das Destillation von einem Cross-Encoder, geminte Hard Negatives und eine CoCondenser-Initialisierung ergänzte, und im März 2024 SPLADE-v3, das 40,2 MRR@10 auf MS MARCO und 51,7 mittleres nDCG@10 auf BEIR-13 bei maximal 512 Eingabetokens meldet (",{"tag":155,"href":44,"children":194},[168],"). 2026 veröffentlichte Naver außerdem SPLADE-Code-06B, ein Qwen3-basiertes 0.6B-Modell für Code, das seine Modellkarte als bestes MTEB-Modell unter 1B Parametern darstellt; behandeln Sie das als Herstellerangabe (",{"tag":155,"href":197,"children":198},"https:\u002F\u002Fhuggingface.co\u002Fnaver\u002Fsplade-code-06B",[199],"SPLADE-Code",").",{"type":202,"variant":203,"title":204,"body":205},"callout","warn","Navers Checkpoints sind nicht-kommerziell",[206],[207,208,212],"Das Repository naver\u002Fsplade und Navers offizielle Checkpoints, auch SPLADE-v3, stehen unter CC BY-NC-SA 4.0. Damit scheiden sie für die meisten kommerziellen Produkte aus. Es gibt Apache-2.0-Neuveröffentlichungen der Community wie Qdrant\u002FSplade_PP_en_v1 (",{"tag":155,"href":209,"children":210},"https:\u002F\u002Fhuggingface.co\u002FQdrant\u002FSplade_PP_en_v1",[211],"Qdrant","), und ELSER von Elastic sowie die spärlichen Modelle von OpenSearch sind Herstelleralternativen. Prüfen Sie die Lizenz genau des Checkpoints, bevor er in Produktion geht.",{"type":214,"head":215,"rows":226},"table",[216,218,220,222,224],[217],"Modell",[219],"Größe",[221],"Lizenz",[223],"Wo es läuft",[225],"Hinweise",[227,237,245,256,265,275],[228,229,231,233,235],[168],[230],"BERT-base",[232],"CC BY-NC-SA 4.0",[234],"jede Engine mit spärlichen Vektoren",[236],"40,2 MRR@10, 51,7 BEIR-13",[238,240,241,242,243],[239],"SPLADE++ (selfdistil)",[230],[232],[234],[244],"50,7 BEIR-13",[246,248,250,252,254],[247],"Qdrant\u002FSplade_PP_en_v1",[249],"BERT-base, ONNX",[251],"Apache-2.0",[253],"Qdrant, FastEmbed, andere",[255],"kommerziell nutzbare Neuveröffentlichung",[257,259,261,262,263],[258],"efficient-SPLADE",[260],"getrennte Anfrage- und Dok.-Encoder",[232],[234],[264],"bis 4 ms an BM25-Latenz",[266,268,270,272,273],[267],"ELSER v2",[269],"BERT-base, etwa 100M",[271],"Elastic, mit Abo",[14],[274],"nur Englisch, 512 Tokens",[276,278,280,282,284],[277],"Spärliche OpenSearch-Modelle",[279],"verschiedene",[281],"siehe Modellkarte",[283],"OpenSearch",[285],"Doc-only- und Bi-Encoder-Modus",{"type":146,"level":147,"id":110,"text":111},{"type":129,"content":288},[289,290,200],"Erweiterung verlängert die Posting-Listen, ein gelernter spärlicher Index ist also größer und langsamer zu durchsuchen als ein BM25-Index über denselben Text; wie viel, hängt von der Regularisierungsstärke des Modells ab, und eine einzelne primäre Zahl für das Verhältnis habe ich nicht gefunden. Die gemessenen Kosten sind aber konkret. Der Benchmark von OpenSearch auf MS MARCO ergab für BM25 5,4 ms feste Latenz plus 2,80 ms pro Million Dokumente und für Doc-only Neural Sparse 8,7 ms plus 5,15 ms pro Million, etwa das 1,8-Fache des BM25-Scans (",{"tag":155,"href":50,"children":291},[283],{"type":171,"src":293,"alt":294,"wide":174,"caption":295},"\u002Fimages\u002Fblog\u002Fsplade-learned-sparse-retrieval\u002Fdiagram-18.webp","Index-Scan-Kosten pro Million Dokumente Drei horizontale Balken, gemessen in OpenSearch 2.12 auf MS MARCO. BM25 durchsucht den invertierten Index mit 2,80 ms pro Million Dokumente bei 5,4 ms fester Latenz. Doc-only Neural Sparse durchsucht mit 5,15 ms pro Million Dokumente bei 8,7 ms fest, etwa das 1,8-Fache von BM25. Bi-Encoder Neural Sparse, das pro Anfrage ein Modell ausführt, durchsucht mit 20,58 ms pro Million Dokumente bei 265,4 ms fest.","Doc-only gelernte spärliche Suche kostet pro Million Dokumente etwa das Doppelte von BM25; teuer ist das Modell pro Anfrage.",{"type":129,"content":297},[298,299,200],"Teuer ist der Modus, der bei jeder Anfrage ein Modell ausführt. Im selben Benchmark brachte der Bi-Encoder-Modus 265,4 ms feste Latenz und 20,58 ms pro Million Dokumente; der zweiphasige Prozessor von OpenSearch, der zuerst mit hoch gewichteten Tokens bewertet und dann verfeinert, senkte die mittlere Latenz im Doc-only-Modus von 53,56 auf 38,61 ms und im Bi-Encoder-Modus von 300,79 auf 121,64 ms. Navers Effizienzarbeit erreichte mit getrennten, leichteren Anfrage-Encodern eine Latenz bis 4 ms an BM25 bei weniger als 10 Prozent Verlust an MRR@10 (",{"tag":155,"href":38,"children":300},[184],{"type":129,"content":302},[303,304,307,308,311,312,200],"Pruning ist der günstigste Hebel. Statisches Pruning gelernter spärlicher Indizes brachte doppelte Geschwindigkeit bei höchstens 2 Prozent Qualitätsverlust oder vierfache bei höchstens 8 Prozent, und Reranker blieben auf Kandidaten aus geprunten Indizes robust (",{"tag":155,"href":47,"children":305},[306],"statisches Pruning","). Der Ingest-Prozessor von OpenSearch unterstützt mehrere Pruning-Arten, und ",{"tag":187,"children":309},[310],"max_ratio"," mit 0,1 senkt den Speicher um etwa 40 Prozent bei weniger als 1 Prozent Relevanzverlust (",{"tag":155,"href":53,"children":313},[283],{"type":146,"level":147,"id":113,"text":114},{"type":129,"content":316},[317,318,321,322,325,326,329,330,200],"Beide Engines speichern gelernte spärliche Vektoren als gewichtete Begriffe im invertierten Index. In Elasticsearch ist ",{"tag":187,"children":319},[320],"sparse_vector"," der richtige Feldtyp; Token-Pruning ist seit 9.1 standardmäßig aktiv, spärliche Vektoren sind seit 9.2 standardmäßig aus ",{"tag":187,"children":323},[324],"_source"," ausgeschlossen, und Gewichte werden mit 9 signifikanten Bits gespeichert, etwa 0,4 Prozent relativer Fehler (",{"tag":155,"href":56,"children":327},[328],"Elastic","). Elastics eigenes Modell ELSER v2 beherrscht nur Englisch, kodiert die ersten 512 Tokens eines Felds und gewann 10 von 12 BEIR-Datensätzen gegen BM25 mit durchschnittlich 18 Prozent mehr nDCG@10 (",{"tag":155,"href":59,"children":331},[20],{"type":129,"content":333},[334,335,338,339,342,343,347,348,350],"Die anfrageseitige Optimierung von ELSER lohnt sich als Prinzip: Anfragetokens entfernen, die viel häufiger sind als erwartet, Tokens über 0,4 des Maximalgewichts behalten und die Top 50 mit dem vollen Tokensatz neu bewerten. Elastic meldet im Schnitt 3,4-fache Beschleunigung bei vernachlässigbarer Änderung des nDCG@10 (",{"tag":155,"href":62,"children":336},[337],"Elastic Search Labs","). Für die Fusion kombiniert der RRF-Retriever von Elasticsearch einen BM25-Standard-Retriever mit einem ELSER-Retriever bei einem Standard-",{"tag":187,"children":340},[341],"rank_constant"," von 60 (",{"tag":155,"href":344,"children":345},"https:\u002F\u002Fwww.elastic.co\u002Fdocs\u002Freference\u002Felasticsearch\u002Frest-apis\u002Freciprocal-rank-fusion",[346],"RRF","). OpenSearch bietet Doc-only- und Bi-Encoder-Modus für Neural Sparse, einen zweiphasigen Prozessor und seit 3.3 approximative Suche auf ",{"tag":187,"children":349},[320],"-Feldern.",{"type":129,"content":352},[353,354,358,359,363],"Auch eigene Vektorspeicher unterstützen spärliche Vektoren, was zählt, wenn Sie bereits einen betreiben; die ",{"tag":140,"to":355,"children":356},"\u002Fblog\u002Fqdrant",[357],"Qdrant-Besprechung"," behandelt diese Seite. Die allgemeine Mechanik von Vektoren in einem Suchcluster steht in ",{"tag":140,"to":360,"children":361},"\u002Fblog\u002Felasticsearch-opensearch-vector-search",[362],"Vektorsuche in Elasticsearch und OpenSearch",".",{"type":129,"content":365},[366],"In der Praxis folgt die Wahl der Engine dem Cluster, den Sie bereits betreiben. Nutzen Sie Elasticsearch mit Elastic-Abo und englischen Inhalten, ist ELSER der geringste Aufwand. Nutzen Sie OpenSearch, sind dessen eigene spärliche Modelle und der Doc-only-Modus der natürliche Start. Wollen Sie einen offenen SPLADE-Checkpoint in einer der beiden Engines, kodieren Sie Dokumente selbst in einem Ingest-Job und schreiben die Tokengewichte in ein spärliches Feld, das beide Engines akzeptieren.",{"type":146,"level":147,"id":116,"text":117},{"type":129,"content":369},[370],"Gelernte spärliche Suche hilft am meisten, wenn Anfragen und Dokumente unterschiedliche Wörter für dasselbe verwenden: Nutzerfragen gegenüber technischer Dokumentation, Produktsuchen in natürlicher Sprache gegenüber knappen Katalogtexten, Synonyme und Umschreibungen im Englischen. Sie liefert außerdem einen zweiten Retriever, dessen Treffer sich Begriff für Begriff erklären lassen, was dichte Vektoren nicht bieten. In B2B-Katalogen aus der Arbeit mit Spryker und Pimcore, voller Artikelnummern und normalisierter Attribute, ist genau diese Kombination aus Erweiterung und exakten Begriffen die Hauptmotivation.",{"type":129,"content":372},[373,374,363],"Sie hilft weniger, wenn Anfragen überwiegend exakte Bezeichner sind, die BM25 bereits trifft, wenn der Inhalt nicht englisch ist und das Modell nur Englisch kann, wie ELSER, oder wenn der Korpus so groß ist, dass eine zweite, längere Posting-Liste der teure Teil ist. Auf Benchmarks ist sie auch nicht durchgehend besser; die SPLADE++-Ergebnisse zeigen BM25 auf einigen BEIR-Datensätzen weiterhin vorn. Produktsuche mit Teilenummern im Besonderen behandelt ",{"tag":140,"to":375,"children":376},"\u002Fblog\u002Fsemantic-product-search-b2b",[377],"semantische Produktsuche im B2B",{"type":146,"level":147,"id":119,"text":120},{"type":129,"content":380},[381,382,384,385,200],"Ein spärliches Modell anzupassen ist mit einer GPU machbar. Das Repository naver\u002Fsplade liefert Konfigurationen pro Trainingsszenario, darunter eine Einzel-GPU-Konfiguration auf einer 16-GB-Karte, die 37,2 MRR@10 erreicht (",{"tag":155,"href":38,"children":383},[184],"). Sentence Transformers hat inzwischen einen vollwertigen SparseEncoder mit SPLADE-spezifischen Losses wie SpladeLoss, CachedSpladeLoss und FlopsLoss und unterstützt asymmetrische Kodierung von Anfrage und Dokument (",{"tag":155,"href":65,"children":386},[387],"Sentence Transformers",{"type":129,"content":389},[390],"Für andere Sprachen als Englisch ist Anpassung oft der einzige Weg, weil die meisten veröffentlichten spärlichen Checkpoints, ELSER eingeschlossen, nur Englisch können. Ein mehrsprachiges Basismodell mit BERT-artigem Vokabular lässt sich mit denselben Losses zu einem spärlichen Encoder trainieren, aber das Vokabular selbst begrenzt, was erweitert werden kann; deutsche Komposita etwa werden in Wortteile zerlegt, und die Erweiterung arbeitet auf diesen Teilen statt auf ganzen Wörtern.",{"type":129,"content":392},[393,394,398],"Die Datenseite ist dieselbe wie beim dichten Feintuning: Anfrage-Dokument-Paare aus Logs oder generierten Anfragen, geminte Hard Negatives und ein eingefrorenes Evaluierungsset; ",{"tag":140,"to":395,"children":396},"\u002Fblog\u002Fembedding-fine-tuning-domain",[397],"Embedding-Modelle feintunen"," behandelt diese Schleife. Der Sparsity-Regularisierer ist der zusätzliche Regler, und es lohnt sich, ihn durchzuprobieren, weil er Qualität direkt gegen Indexgröße und Latenz tauscht.",{"type":146,"level":147,"id":122,"text":123},{"type":401,"ordered":174,"items":402},"list",[403,405,407,409,411,413,415],[404],"Zuerst BM25 und Ihre aktuelle Hybridsuche auf einem gelabelten Anfrageset messen.",[406],"Lizenz genau des Checkpoints prüfen; Navers sind nicht-kommerziell.",[408],"Sprachabdeckung des Modells mit Ihren Inhalten abgleichen.",[410],"Im Doc-only-Modus beginnen und Tokens prunen, bevor Sie Latenz messen.",[412],"Per RRF mit BM25 oder dichten Treffern fusionieren und mit Fusion ohne es vergleichen.",[414],"Indexgröße und p95-Latenz bei Ihrer echten Dokumentenzahl messen.",[416],"Nur behalten, wenn der Recall bei Ihrem k genug steigt, um den zweiten Index zu bezahlen.",{"type":129,"content":418},[419,420,424],"Wenn Sie entscheiden, ob ein gelernter spärlicher Retriever neben BM25 und dichter Suche seinen Platz verdient, sehen Sie sich meine ",{"tag":140,"to":421,"children":422},"\u002Fexpertise\u002Fai-engineer",[423],"KI-Engineering-Arbeit"," an.",{"type":146,"level":147,"id":125,"text":126},{"type":401,"ordered":174,"items":427},[428,431,434,437,440,443,446,449,452,455],[429],{"tag":155,"href":38,"children":430},[37],[432],{"tag":155,"href":41,"children":433},[40],[435],{"tag":155,"href":44,"children":436},[43],[438],{"tag":155,"href":47,"children":439},[46],[441],{"tag":155,"href":50,"children":442},[49],[444],{"tag":155,"href":53,"children":445},[52],[447],{"tag":155,"href":56,"children":448},[55],[450],{"tag":155,"href":59,"children":451},[58],[453],{"tag":155,"href":62,"children":454},[61],[456],{"tag":155,"href":65,"children":457},[64],[459,535,593,651],{"slug":460,"published":461,"minutes":462,"category":8,"tags":463,"keywords":469,"about":482,"sources":492,"cover":529,"og":530,"expertise":68,"locales":531,"lang":71,"title":532,"description":533,"coverAlt":534},"embedding-model-selection-2026","2026-10-17",9,[464,465,466,467,468],"Embeddings","RAG","MTEB","Vector search","Model selection",[470,471,472,473,474,475,476,477,478,479,480,481],"best embedding model 2026","how to choose an embedding model","embedding model comparison","MTEB leaderboard explained","RTEB benchmark","open source embedding model","multilingual embedding model","voyage-4 vs openai embeddings","Qwen3-Embedding","EmbeddingGemma","embedding model for RAG","switching embedding models re-embed",[483,486,489],{"name":484,"url":485},"Word embedding","https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FWord_embedding",{"name":487,"url":488},"Information retrieval","https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FInformation_retrieval",{"name":490,"url":491},"Discounted cumulative gain","https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FDiscounted_cumulative_gain",[493,496,499,502,505,508,511,514,517,520,523,526],{"title":494,"url":495},"Enevoldsen et al.: MMTEB, Massive Multilingual Text Embedding Benchmark (2025)","https:\u002F\u002Farxiv.org\u002Fabs\u002F2502.13595",{"title":497,"url":498},"Hugging Face: Introducing RTEB, a new standard for retrieval evaluation (Oct 2025)","https:\u002F\u002Fhuggingface.co\u002Fblog\u002Frteb",{"title":500,"url":501},"OpenAI: Vector embeddings guide","https:\u002F\u002Fdevelopers.openai.com\u002Fapi\u002Fdocs\u002Fguides\u002Fembeddings",{"title":503,"url":504},"OpenAI: API pricing","https:\u002F\u002Fdevelopers.openai.com\u002Fapi\u002Fdocs\u002Fpricing",{"title":506,"url":507},"Voyage AI: The Voyage 4 model family, shared embedding space with MoE architecture (Jan 2026)","https:\u002F\u002Fblog.voyageai.com\u002F2026\u002F01\u002F15\u002Fvoyage-4\u002F",{"title":509,"url":510},"Voyage AI: Text embeddings documentation","https:\u002F\u002Fdocs.voyageai.com\u002Fdocs\u002Fembeddings",{"title":512,"url":513},"Voyage AI: Pricing","https:\u002F\u002Fdocs.voyageai.com\u002Fdocs\u002Fpricing",{"title":515,"url":516},"Google: Gemini API embeddings documentation","https:\u002F\u002Fai.google.dev\u002Fgemini-api\u002Fdocs\u002Fembeddings",{"title":518,"url":519},"Google: Gemini API pricing","https:\u002F\u002Fai.google.dev\u002Fgemini-api\u002Fdocs\u002Fpricing",{"title":521,"url":522},"Cohere: Embed models documentation","https:\u002F\u002Fdocs.cohere.com\u002Fdocs\u002Fcohere-embed",{"title":524,"url":525},"Qwen: Qwen3-Embedding-8B model card","https:\u002F\u002Fhuggingface.co\u002FQwen\u002FQwen3-Embedding-8B",{"title":527,"url":528},"Google Developers Blog: Introducing EmbeddingGemma (Sep 2025)","https:\u002F\u002Fdevelopers.googleblog.com\u002Fen\u002Fintroducing-embeddinggemma\u002F","\u002Fimages\u002Fblog\u002Fembedding-model-selection-2026\u002Fcover.webp","\u002Fimages\u002Fblog\u002Fembedding-model-selection-2026\u002Fog.jpg",[70,71,72],"Embedding-Modell wählen 2026: Leaderboards, Kosten und ein Vergleichstest mit eigenen Daten","Wie man 2026 ein Embedding-Modell für RAG wählt: was MTEB und RTEB aussagen, API oder offene Gewichte, Preise, Dimensionen und ein einwöchiger Vergleichstest.","Drei Säulen aus gestapelten Blöcken, die mittlere am höchsten, jede mit kurzem Balken und weiter Klammer.",{"slug":536,"published":461,"minutes":537,"category":8,"tags":538,"keywords":542,"about":554,"sources":562,"cover":587,"og":588,"expertise":68,"locales":589,"lang":71,"title":590,"description":591,"coverAlt":592},"contextual-retrieval-late-chunking",10,[465,539,464,540,541],"Chunking","Contextual retrieval","Late chunking",[543,544,545,546,547,548,549,550,551,552,553],"contextual retrieval","anthropic contextual retrieval","late chunking","contextual chunk embeddings","contextual embeddings rag","contextual bm25","chunk context rag","voyage-context-3","voyage-context-4","late chunking vs contextual retrieval","rag chunking context loss",[555,558,559],{"name":556,"url":557},"Retrieval-augmented generation","https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FRetrieval-augmented_generation",{"name":27,"url":28},{"name":560,"url":561},"Sentence embedding","https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FSentence_embedding",[563,566,569,572,575,578,581,584],{"title":564,"url":565},"Anthropic: Introducing Contextual Retrieval (Sep 2024)","https:\u002F\u002Fwww.anthropic.com\u002Fnews\u002Fcontextual-retrieval",{"title":567,"url":568},"Günther et al.: Late Chunking, Contextual Chunk Embeddings Using Long-Context Embedding Models (2024, rev. 2025)","https:\u002F\u002Farxiv.org\u002Fabs\u002F2409.04701",{"title":570,"url":571},"Jina AI: Late Chunking in Long-Context Embedding Models (Aug 2024)","https:\u002F\u002Fjina.ai\u002Fnews\u002Flate-chunking-in-long-context-embedding-models\u002F",{"title":573,"url":574},"Voyage AI: Introducing voyage-context-3 (Jul 2025)","https:\u002F\u002Fblog.voyageai.com\u002F2025\u002F07\u002F23\u002Fvoyage-context-3\u002F",{"title":576,"url":577},"Voyage AI: voyage-context-4 (Jun 2026)","https:\u002F\u002Fblog.voyageai.com\u002F2026\u002F06\u002F29\u002Fvoyage-context-4\u002F",{"title":579,"url":580},"Voyage AI: Contextualized chunk embeddings documentation","https:\u002F\u002Fdocs.voyageai.com\u002Fdocs\u002Fcontextualized-chunk-embeddings",{"title":582,"url":583},"Anthropic: Claude API pricing","https:\u002F\u002Fplatform.claude.com\u002Fdocs\u002Fen\u002Fabout-claude\u002Fpricing",{"title":585,"url":586},"Qu, Tu and Bao: Is Semantic Chunking Worth the Computational Cost? (2024)","https:\u002F\u002Farxiv.org\u002Fabs\u002F2410.13070","\u002Fimages\u002Fblog\u002Fcontextual-retrieval-late-chunking\u002Fcover.webp","\u002Fimages\u002Fblog\u002Fcontextual-retrieval-late-chunking\u002Fog.jpg",[70,71,72],"Contextual Retrieval und Late Chunking: RAG-Chunks ihren Kontext zurückgeben","Chunks verlieren ihr Dokument. Wie Contextual Retrieval, Late Chunking und kontextuelle Embeddings das beheben, was sie kosten, wann man verzichtet.","Vier lose Quadrate, unten von einer breiten Klammer gebündelt und je nach oben mit einer großen Fläche verbunden.",{"slug":594,"published":461,"minutes":462,"category":8,"tags":595,"keywords":599,"about":612,"sources":620,"cover":645,"og":646,"expertise":68,"locales":647,"lang":71,"title":648,"description":649,"coverAlt":650},"rag-access-control-permissions",[465,596,597,598,467],"Access control","Security","Multi-tenancy",[600,601,602,603,604,605,606,607,608,609,610,611],"rag access control","permission aware rag","document level security rag","rag multi tenancy","vector database access control","pgvector row level security","security trimming azure ai search","openfga rag authorization","qdrant multitenancy","pinecone namespaces multitenancy","owasp llm08 vector and embedding weaknesses","rag data leakage",[613,616,619],{"name":614,"url":615},"Access-control list","https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FAccess-control_list",{"name":617,"url":618},"Multitenancy","https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FMultitenancy",{"name":556,"url":557},[621,624,627,630,633,636,639,642],{"title":622,"url":623},"OWASP GenAI Security Project: LLM08:2025 Vector and Embedding Weaknesses","https:\u002F\u002Fgenai.owasp.org\u002Fllmrisk\u002Fllm082025-vector-and-embedding-weaknesses\u002F",{"title":625,"url":626},"PostgreSQL documentation: Row Security Policies","https:\u002F\u002Fwww.postgresql.org\u002Fdocs\u002Fcurrent\u002Fddl-rowsecurity.html",{"title":628,"url":629},"pgvector README: filtering and iterative index scans","https:\u002F\u002Fgithub.com\u002Fpgvector\u002Fpgvector",{"title":631,"url":632},"Qdrant: Multitenancy and partitions guide","https:\u002F\u002Fqdrant.tech\u002Fdocumentation\u002Fguides\u002Fmultiple-partitions\u002F",{"title":634,"url":635},"Pinecone: Implement multitenancy using namespaces","https:\u002F\u002Fdocs.pinecone.io\u002Fguides\u002Findex-data\u002Fimplement-multitenancy",{"title":637,"url":638},"Microsoft Learn: Document-level access control in Azure AI Search","https:\u002F\u002Flearn.microsoft.com\u002Fen-us\u002Fazure\u002Fsearch\u002Fsearch-document-level-access-overview",{"title":640,"url":641},"OpenFGA: RAG authorization use case","https:\u002F\u002Fopenfga.dev\u002Fdocs\u002Fuse-cases\u002Frag-authorization",{"title":643,"url":644},"Morris et al.: Text Embeddings Reveal (Almost) As Much As Text (EMNLP 2023)","https:\u002F\u002Farxiv.org\u002Fabs\u002F2310.06816","\u002Fimages\u002Fblog\u002Frag-access-control-permissions\u002Fcover.webp","\u002Fimages\u002Fblog\u002Frag-access-control-permissions\u002Fog.jpg",[70,71,72],"Zugriffskontrolle für RAG: berechtigungsbewusstes Retrieval ohne Datenlecks","Wie RAG-Assistenten Dokumente preisgeben und wie man das stoppt: ACLs an jedem Chunk, Vorfilter, Row-Level Security in pgvector, Rechte-Sync und Lecktests.","Sieben Karten in einer Reihe, sechs mit Schloss, eine leere Karte schickt einen Pfeil nach außen.",{"slug":652,"published":461,"minutes":537,"category":8,"tags":653,"keywords":658,"about":670,"sources":678,"cover":705,"og":706,"expertise":707,"locales":708,"lang":71,"title":709,"description":710,"coverAlt":711},"rag-product-catalog-pim-data",[465,654,655,656,657],"PIM","Product data","B2B e-commerce","Metadata filtering",[659,660,661,662,663,664,665,666,667,668,669],"rag product catalog","rag pim data","llm product data","product catalog chatbot","akeneo rag","pimcore ai search","rag structured data","metadata filtering rag","product attributes embeddings","b2b product assistant","etim classification ai",[671,674,675],{"name":672,"url":673},"Product information management","https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FProduct_information_management",{"name":556,"url":557},{"name":676,"url":677},"ETIM (standard)","https:\u002F\u002Fwww.etim-international.com\u002Fclassification\u002F",[679,682,685,688,690,693,696,699,702],{"title":680,"url":681},"Akeneo API: Products, product values, metric values and product models","https:\u002F\u002Fapi.akeneo.com\u002Fconcepts\u002Fproducts.html",{"title":683,"url":684},"Akeneo Help Center: What about products with variants?","https:\u002F\u002Fhelp.akeneo.com\u002Fserenity-take-the-power-over-your-products\u002Fserenity-what-about-products-with-variants",{"title":686,"url":687},"Pimcore documentation: Classification Store","https:\u002F\u002Fdocs.pimcore.com\u002Fplatform\u002FPimcore\u002FObjects\u002FObject_Classes\u002FData_Types\u002FClassification_Store\u002F",{"title":689,"url":677},"ETIM International: Classification",{"title":691,"url":692},"ETIM International: ETIM releases and the IXF format","https:\u002F\u002Fetim-international.com\u002F?p=754",{"title":694,"url":695},"Reddy et al.: Shopping Queries Dataset, a large-scale ESCI benchmark for improving product search (2022)","https:\u002F\u002Farxiv.org\u002Fabs\u002F2206.06588",{"title":697,"url":698},"Amazon Science: esci-data repository","https:\u002F\u002Fgithub.com\u002Famazon-science\u002Fesci-data",{"title":700,"url":701},"Qdrant documentation: Filtering","https:\u002F\u002Fqdrant.tech\u002Fdocumentation\u002Fconcepts\u002Ffiltering\u002F",{"title":703,"url":704},"Sui et al.: Table Meets LLM, can large language models understand structured table data? (WSDM 2024)","https:\u002F\u002Farxiv.org\u002Fabs\u002F2305.13062","\u002Fimages\u002Fblog\u002Frag-product-catalog-pim-data\u002Fcover.webp","\u002Fimages\u002Fblog\u002Frag-product-catalog-pim-data\u002Fog.jpg","b2b-ecommerce-developer",[70,71,72],"RAG über Produktkataloge: aus PIM-Daten Antworten machen, die halten","Produktdaten sind strukturiert, Chunking wie bei PDFs scheitert. So serialisiert man PIM-Attribute, leitet Spezifikationsfragen an Filter und bleibt exakt.","Ein Rahmen aus neun Feldern mit kleinen Symbolen, darunter ein Trichter zu einer einzelnen Karte.",1792342714786]