[{"data":1,"prerenderedAt":547},["ShallowReactive",2],{"blog-embedding-quantization-binary-matryoshka-de":3},{"slug":4,"published":5,"minutes":6,"category":7,"tags":8,"keywords":14,"about":25,"sources":35,"cover":45,"og":46,"expertise":47,"locales":48,"lang":50,"title":52,"description":53,"coverAlt":54,"metaTitle":55,"takeaways":56,"faq":62,"toc":78,"blocks":99,"others":310},"embedding-quantization-binary-matryoshka","2026-10-16",5,"rag",[9,10,11,12,13],"Embeddings","Vector search","Quantization","pgvector","RAG",[15,16,17,18,19,20,21,22,23,24],"embedding quantization","binary quantization embeddings","int8 embeddings","matryoshka embeddings","reduce vector database memory","pgvector halfvec","pgvector binary_quantize","embedding dimensions reduction","rescoring binary embeddings","vector index memory cost",[26,29,32],{"name":27,"url":28},"Quantization (signal processing)","https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FQuantization_(signal_processing)",{"name":30,"url":31},"Nearest neighbor search","https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FNearest_neighbor_search",{"name":33,"url":34},"Hamming distance","https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FHamming_distance",[36,39,42],{"title":37,"url":38},"Hugging Face: Binary and Scalar Embedding Quantization for Significantly Faster and Cheaper Retrieval (Mar 2024)","https:\u002F\u002Fhuggingface.co\u002Fblog\u002Fembedding-quantization",{"title":40,"url":41},"Kusupati et al.: Matryoshka Representation Learning (2022)","https:\u002F\u002Farxiv.org\u002Fabs\u002F2205.13147",{"title":43,"url":44},"pgvector README: halfvec, bit, binary quantization and subvector indexing","https:\u002F\u002Fgithub.com\u002Fpgvector\u002Fpgvector","\u002Fimages\u002Fblog\u002Fembedding-quantization-binary-matryoshka\u002Fcover.webp","\u002Fimages\u002Fblog\u002Fembedding-quantization-binary-matryoshka\u002Fog.jpg","ai-engineer",[49,50,51],"en","de","hu","Embedding-Quantisierung: Binär-, int8- und Matryoshka-Vektoren ohne Qualitätsverlust beim Retrieval","Wie Binär- und int8-Quantisierung und Matryoshka-Kürzung Vektorindizes 4- bis 32-mal verkleinern, was das an Recall kostet und wie Rescoring es zurückholt.","Ein float32-Embedding schrumpft zu halber Genauigkeit, int8 und Binärbits, mit einem Rescoring-Schritt, der die Ranking-Qualität wiederherstellt.","Embedding-Quantisierung: binär und int8 · Balázs Csorba",[57,58,59,60,61],"Binäre Quantisierung speichert ein Bit pro Dimension, 32-mal weniger als float32; int8 speichert ein Byte, 4-mal weniger.","In den Tests von Hugging Face behielten binäre Embeddings rund 92,5 % der Retrieval-Leistung, Rescoring mit der float-Anfrage hob das auf rund 96 %.","Matryoshka-Modelle erlauben, nur die ersten Dimensionen zu behalten; OpenAIs text-embedding-3-large behielt bei 12-facher Kompression 93,1 %.","pgvector unterstützt halfvec bis 4.000 Dimensionen, bit bis 64.000 und binäre Quantisierung über einen Ausdrucksindex mit Re-Ranking.","Den Index quantisieren, die vollen Vektoren auf der Platte behalten und den Recall vorher und nachher an eigenen Anfragen messen.",[63,66,69,72,75],{"q":64,"a":65},"Was ist Embedding-Quantisierung?","Sie speichert jeden Embedding-Wert mit weniger Bits, nachdem das Modell ihn erzeugt hat: 16-Bit-Floats, 8-Bit-Ganzzahlen oder ein einzelnes Bit pro Dimension. Das Modell bleibt gleich; nur die gespeicherten Vektoren und der Index werden kleiner und schneller zu vergleichen.",{"q":67,"a":68},"Wie viel Retrieval-Qualität kostet binäre Quantisierung?","In den Experimenten von Hugging Face mit mxbai-embed-large-v1 behielten binäre Embeddings rund 92,5 % der Retrieval-Leistung auf MTEB Retrieval. Das Rescoring der Top-Kandidaten mit dem float32-Anfrage-Embedding hob das auf rund 96 %. Andere Modelle und Domänen können abweichen, also an eigenen Daten testen.",{"q":70,"a":71},"Was sind Matryoshka-Embeddings?","Embeddings, die so trainiert sind, dass die ersten Dimensionen die meiste Information tragen, sodass man sie kürzen und den Großteil der Qualität behalten kann. Modelle wie die text-embedding-3-Familie von OpenAI und nomic-embed-text-v1.5 unterstützen das.",{"q":73,"a":74},"Kann ich binäre Quantisierung in PostgreSQL nutzen?","Ja. pgvector hat eine Funktion binary_quantize, einen Typ bit und Hamming-Distanz-Operatoren, also kann man einen HNSW-Ausdrucksindex auf die Binärversion bauen und die Kandidaten in derselben Abfrage mit den Originalvektoren neu ordnen.",{"q":76,"a":77},"Erst quantisieren oder erst kürzen?","Mit halber Genauigkeit beginnen, die fast nichts kostet, dann int8 oder binär mit Rescoring versuchen, wenn Speicher noch der Engpass ist. Matryoshka-Kürzung nutzen, wenn das Modell sie unterstützt und die Zahl der Dimensionen das Limit ist, nicht die Genauigkeit, etwa pgvectors Indexgrenze von 2.000 Dimensionen für vector.",[79,82,85,88,90,93,96],{"id":80,"title":81},"what-quantization-does","Was macht Embedding-Quantisierung eigentlich?",{"id":83,"title":84},"how-much-quality","Wie viel Retrieval-Qualität verliert man?",{"id":86,"title":87},"matryoshka","Was bringen Matryoshka-Embeddings?",{"id":12,"title":89},"Wie setzt man das in pgvector um?",{"id":91,"title":92},"which-to-choose","Welche Technik sollte man wählen?",{"id":94,"title":95},"test-plan","Wie testet man Quantisierung an eigenen Daten?",{"id":97,"title":98},"sources","Quellen",[100,104,113,116,124,172,175,176,179,188,189,196,199,200,224,226,238,239,265,272,273,290,298,299],{"type":101,"content":102},"paragraph",[103],"Vektorindizes werden schneller teuer, als man denkt. Zehn Millionen Chunks mit 1.024-dimensionalen float32-Embeddings sind rund 41 GB reine Vektoren, vor jedem Index-Overhead, und HNSW-Indizes wollen im Arbeitsspeicher liegen. Lange bevor Embedding-Modell oder Datenbank zum Problem werden, wird es der RAM. Quantisierung verkleinert diese Vektoren um den Faktor 2 bis 32 und kostet mit einem zusätzlichen Schritt überraschend wenig Retrieval-Qualität.",{"type":101,"content":105},[106,107,112],"Dieser Artikel vergleicht halbe Genauigkeit, int8, binäre Quantisierung und Matryoshka-Kürzung mit gemessenen Erhaltungswerten, zeigt die Umsetzung in pgvector und endet mit einem Testplan für den eigenen Korpus. Die Wahl des Speichers selbst behandelt ",{"tag":108,"to":109,"children":110},"link","\u002Fblog\u002Fpgvector-vs-vector-databases",[111],"pgvector oder eine Vektordatenbank",".",{"type":114,"level":115,"id":80,"text":81},"heading",2,{"type":101,"content":117},[118,119,123],"Es ist ein Nachbearbeitungsschritt an den Vektoren, nicht am Modell. Wie der ",{"tag":120,"href":38,"children":121},"a",[122],"Beitrag von Hugging Face"," erklärt, wandelt binäre Quantisierung jeden float32-Wert per Schwelle bei null in ein Bit um, was Speicher um den Faktor 32 senkt; skalare int8-Quantisierung bildet jeden Wert auf einen von 256 Bereichen ab, Faktor 4. Binäre Vektoren vergleicht man per Hamming-Distanz, die sehr billig zu berechnen ist.",{"type":125,"head":126,"rows":135},"table",[127,129,131,133],[128],"Format",[130],"Bytes für 1.024 Dim.",[132],"10 Mio. Vektoren",[134],"Reduktion",[136,145,154,163],[137,139,141,143],[138],"float32",[140],"4,096",[142],"~41 GB",[144],"1×",[146,148,150,152],[147],"float16 (halfvec)",[149],"2,048",[151],"~20 GB",[153],"2×",[155,157,159,161],[156],"int8",[158],"1,024",[160],"~10 GB",[162],"4×",[164,166,168,170],[165],"binär (bit)",[167],"128",[169],"~1.3 GB",[171],"32×",{"type":101,"content":173},[174],"Die Zahlen sind reine Vektorgrößen; Indizes kommen grob proportional obendrauf. Entscheidend ist die Größenordnung: Binär macht aus einem Problem für einen eigenen Server etwas, das neben die Anwendung passt.",{"type":114,"level":115,"id":83,"text":84},{"type":101,"content":177},[178],"Hugging Face hat das mit mxbai-embed-large-v1 auf MTEB Retrieval gemessen. Binäre Embeddings allein behielten rund 92,5 % der float32-Leistung. Ein Rescoring-Schritt, Kandidaten mit der binären Anfrage holen und dann mit dem float32-Anfrage-Embedding bewerten, hob das auf rund 96 %, bei 32-facher Speicherersparnis für den Index. int8 liegt dazwischen und ist die sicherere Wahl, wenn kein Rescoring-Durchgang möglich ist.",{"type":180,"attrs":181,"inner":185,"caption":186},"diagram",{"viewBox":182,"role":183,"aria-labelledby":184},"0 0 720 170","img","eq1-t eq1-d","\u003Ctitle id=\"eq1-t\">Binäres Retrieval mit Rescoring\u003C\u002Ftitle>\u003Cdesc id=\"eq1-d\">Die Anfrage wird einmal in float32 eingebettet. Eine binäre Kopie durchsucht den Binärindex nach einem Mehrfachen der benötigten Kandidaten. Diese werden mit der float32-Anfrage gegen ihre gespeicherten vollen Vektoren neu bewertet, und die Top-Ergebnisse gehen an Reranker oder Modell.\u003C\u002Fdesc>\u003Cdefs>\u003Cmarker id=\"eq1-ah\" viewBox=\"0 0 10 10\" refX=\"9\" refY=\"5\" markerWidth=\"7\" markerHeight=\"7\" orient=\"auto-start-reverse\">\u003Cpath d=\"M0 0L10 5L0 10z\" class=\"d-head\" \u002F>\u003C\u002Fmarker>\u003C\u002Fdefs>\u003Crect x=\"20\" y=\"47\" width=\"118\" height=\"76\" rx=\"10\" class=\"d-box\" \u002F>\u003Ctext x=\"79\" y=\"81\" text-anchor=\"middle\" class=\"d-text\">Anfrage\u003C\u002Ftext>\u003Ctext x=\"79\" y=\"103\" text-anchor=\"middle\" class=\"d-small\">float32\u003C\u002Ftext>\u003Cpath d=\"M138 85H158\" class=\"d-line\" marker-end=\"url(#eq1-ah)\" \u002F>\u003Crect x=\"160\" y=\"47\" width=\"118\" height=\"76\" rx=\"10\" class=\"d-accent\" \u002F>\u003Ctext x=\"220\" y=\"81\" text-anchor=\"middle\" class=\"d-text\">Binärsuche\u003C\u002Ftext>\u003Ctext x=\"220\" y=\"103\" text-anchor=\"middle\" class=\"d-small\">Hamming, k×4\u003C\u002Ftext>\u003Cpath d=\"M279 85H299\" class=\"d-line\" marker-end=\"url(#eq1-ah)\" \u002F>\u003Crect x=\"301\" y=\"47\" width=\"118\" height=\"76\" rx=\"10\" class=\"d-gold\" \u002F>\u003Ctext x=\"360\" y=\"81\" text-anchor=\"middle\" class=\"d-text\">Rescoring\u003C\u002Ftext>\u003Ctext x=\"360\" y=\"103\" text-anchor=\"middle\" class=\"d-small\">volle Vektoren\u003C\u002Ftext>\u003Cpath d=\"M419 85H439\" class=\"d-line\" marker-end=\"url(#eq1-ah)\" \u002F>\u003Crect x=\"441\" y=\"47\" width=\"118\" height=\"76\" rx=\"10\" class=\"d-mint\" \u002F>\u003Ctext x=\"500\" y=\"81\" text-anchor=\"middle\" class=\"d-text\">Rerank\u003C\u002Ftext>\u003Ctext x=\"500\" y=\"103\" text-anchor=\"middle\" class=\"d-small\">optional\u003C\u002Ftext>\u003Cpath d=\"M560 85H580\" class=\"d-line\" marker-end=\"url(#eq1-ah)\" \u002F>\u003Crect x=\"582\" y=\"47\" width=\"118\" height=\"76\" rx=\"10\" class=\"d-sky\" \u002F>\u003Ctext x=\"641\" y=\"81\" text-anchor=\"middle\" class=\"d-text\">Top k\u003C\u002Ftext>\u003Ctext x=\"641\" y=\"103\" text-anchor=\"middle\" class=\"d-small\">ans Modell\u003C\u002Ftext>",[187],"Nur der Binärindex muss im Speicher liegen; volle Vektoren werden pro Anfrage für einige hundert Kandidaten gelesen.",{"type":114,"level":115,"id":86,"text":87},{"type":101,"content":190},[191,192,195],"Quantisierung reduziert die Bits pro Dimension. ",{"tag":120,"href":41,"children":193},[194],"Matryoshka Representation Learning"," reduziert die Zahl der Dimensionen: Modelle werden so trainiert, dass die ersten Dimensionen die meiste Information tragen und ein Präfix des Vektors allein ein brauchbares Embedding ist. Das Originalpaper berichtet bis zu 14-mal kleinere Embeddings bei gleicher Genauigkeit in der ImageNet-Klassifikation. Für Text zitiert der Hugging-Face-Beitrag OpenAIs text-embedding-3-large mit 93,1 % Leistung bei 12-facher Kompression und nomic-embed-text-v1.5 mit 95,8 % bei 3-facher und 90 % bei 6-facher.",{"type":101,"content":197},[198],"Kürzen funktioniert nur bei so trainierten Modellen. Bei einem gewöhnlichen Modell Dimensionen abzuschneiden verschlechtert es stark, und klassische Dimensionsreduktion wie PCA schneidet bei Embeddings meist schlecht ab, wie derselbe Beitrag festhält. Vor dem Schneiden die Model Card prüfen.",{"type":114,"level":115,"id":12,"text":89},{"type":101,"content":201},[202,203,206,207,211,212,215,216,219,220,223],"Die ",{"tag":120,"href":44,"children":204},[205],"pgvector-README"," nennt die Grenzen für HNSW-Indizes: ",{"tag":208,"children":209},"code",[210],"vector"," bis 2.000 Dimensionen, ",{"tag":208,"children":213},[214],"halfvec"," bis 4.000 und ",{"tag":208,"children":217},[218],"bit"," bis 64.000. Binäre Quantisierung geht über einen Ausdrucksindex auf ",{"tag":208,"children":221},[222],"binary_quantize(embedding)"," mit Hamming-Distanz, und dieselbe Abfrage kann die Kandidaten mit den Originalvektoren neu ordnen. Subvektor-Ausdrucksindizes liefern Matryoshka-Kürzung ohne zweite Spalte.",{"type":208,"code":225},"-- Binary index for candidate search, full vectors for rescoring\nCREATE INDEX chunks_bq ON chunks\n  USING hnsw ((binary_quantize(embedding)::bit(1024)) bit_hamming_ops);\n\nSELECT id, text FROM (\n  SELECT id, text, embedding FROM chunks\n  ORDER BY binary_quantize(embedding)::bit(1024) \u003C~> binary_quantize($1::vector)\n  LIMIT 200                                   -- 4–10x the final k\n) candidates\nORDER BY embedding \u003C=> $1::vector             -- rescore with the float query\nLIMIT 20;\n\n-- Matryoshka: index only the first 512 dimensions of a model trained for it\nCREATE INDEX chunks_mrl ON chunks\n  USING hnsw ((subvector(embedding, 1, 512)::vector(512)) vector_cosine_ops);\n\n-- Half precision: half the memory, nearly no loss\nCREATE INDEX chunks_half ON chunks\n  USING hnsw ((embedding::halfvec(1024)) halfvec_cosine_ops);\n",{"type":101,"content":227},[228,229,232,233,237],"Die Abfrage muss denselben Ausdruck wie der Index verwenden, sonst fällt Postgres auf einen sequenziellen Scan zurück. Einmal pro Abfrageform mit ",{"tag":208,"children":230},[231],"EXPLAIN"," prüfen. Spezialisierte Vektordatenbanken wie ",{"tag":108,"to":234,"children":235},"\u002Ftools\u002Fqdrant",[236],"Qdrant"," bieten skalare und binäre Quantisierung als Collection-Einstellung mit eingebautem Rescoring; die Abwägungen sind dieselben.",{"type":114,"level":115,"id":91,"text":92},{"type":125,"head":240,"rows":245},[241,243],[242],"Situation",[244],"Beginnen mit",[246,251,255,260],[247,249],[248],"Index passt in den Speicher, sicherer Gewinn gesucht",[250],"Halbe Genauigkeit",[252,254],[253],"Speicher ist Engpass, kein Rescoring möglich",[156],[256,258],[257],"Sehr großer Korpus, Rescoring in Ordnung",[259],"Binär + float-Rescoring",[261,263],[262],"Modell hat mehr Dimensionen als der Index erlaubt",[264],"Matryoshka-Kürzung, falls unterstützt; sonst halfvec",{"type":266,"variant":267,"title":268,"body":269},"callout","tip","Die vollen Vektoren behalten",[270],[271],"Den Index quantisieren, nicht die einzige Kopie. Vektoren in voller Genauigkeit auf der Platte sind das, was Rescoring liest, und sie erlauben später einen Technikwechsel ohne Neu-Embedding des Korpus, was der teure Teil ist.",{"type":114,"level":115,"id":94,"text":95},{"type":274,"ordered":275,"items":276},"list",true,[277,284,286,288],[278,279,283],"Das eigene Retrieval-Eval-Set nehmen, Fragen mit bekannten relevanten Chunks, wie in ",{"tag":108,"to":280,"children":281},"\u002Fblog\u002Frag-evaluation-metrics",[282],"RAG evaluieren"," beschrieben.",[285],"Recall@10 und Recall@50 mit float32 als Basislinie messen.",[287],"Für halfvec, int8, binär ohne Rescoring und binär mit Rescoring beim 4- und 10-Fachen des finalen k wiederholen.",[289],"Indexgröße, Abfragelatenz im p95 und Recall in einer Tabelle festhalten und die günstigste Option innerhalb des Recall-Budgets wählen.",{"type":101,"content":291},[292,293,297],"Danach die ganze Pipeline laufen lassen, inklusive hybrider Suche und Reranker aus ",{"tag":108,"to":294,"children":295},"\u002Fblog\u002Frag-pipeline-chunking-hybrid-search-reranking",[296],"Eine produktive RAG-Pipeline",". Ein Reranker verdeckt oft kleine Recall-Verluste der ersten Stufe, ein weiterer Grund, warum quantisiertes Retrieval in der ersten Stufe in der Praxis gut funktioniert.",{"type":114,"level":115,"id":97,"text":98},{"type":274,"ordered":275,"items":300},[301,304,307],[302],{"tag":120,"href":38,"children":303},[37],[305],{"tag":120,"href":41,"children":306},[40],[308],{"tag":120,"href":44,"children":309},[43],[311,368,424,478],{"slug":312,"published":5,"minutes":313,"category":7,"tags":314,"keywords":319,"about":330,"sources":340,"cover":362,"og":363,"expertise":47,"locales":364,"lang":50,"title":365,"description":366,"coverAlt":367},"pdf-document-parsing-for-rag",9,[13,315,316,317,318],"PDF parsing","OCR","Docling","Document AI",[320,321,322,323,324,325,326,327,328,329],"pdf parsing for rag","best pdf parser for rag","docling vs marker","marker vs mineru","pdf to markdown for llm","extract tables from pdf for rag","ocr for rag pipeline","olmocr bench","scanned pdf rag","document parsing llm",[331,334,337],{"name":332,"url":333},"PDF","https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FPDF",{"name":335,"url":336},"Optical character recognition","https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FOptical_character_recognition",{"name":338,"url":339},"Retrieval-augmented generation","https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FRetrieval-augmented_generation",[341,344,347,350,353,356,359],{"title":342,"url":343},"Docling: README, features and license (GitHub)","https:\u002F\u002Fgithub.com\u002Fdocling-project\u002Fdocling",{"title":345,"url":346},"Auer et al.: Docling: An Efficient Open-Source Toolkit for AI-driven Document Conversion (2025)","https:\u002F\u002Farxiv.org\u002Fabs\u002F2501.17887",{"title":348,"url":349},"Datalab: Marker README, olmOCR-bench results and license (GitHub)","https:\u002F\u002Fgithub.com\u002Fdatalab-to\u002Fmarker",{"title":351,"url":352},"OpenDataLab: MinerU README and license (GitHub)","https:\u002F\u002Fgithub.com\u002Fopendatalab\u002FMinerU",{"title":354,"url":355},"Poznanski et al.: olmOCR: Unlocking Trillions of Tokens in PDFs with Vision Language Models (2025)","https:\u002F\u002Farxiv.org\u002Fabs\u002F2502.18443",{"title":357,"url":358},"Claude Platform Docs: PDF support","https:\u002F\u002Fplatform.claude.com\u002Fdocs\u002Fen\u002Fbuild-with-claude\u002Fpdf-support",{"title":360,"url":361},"Anthropic: Introducing Contextual Retrieval (Sep 2024)","https:\u002F\u002Fwww.anthropic.com\u002Fnews\u002Fcontextual-retrieval","\u002Fimages\u002Fblog\u002Fpdf-document-parsing-for-rag\u002Fcover.webp","\u002Fimages\u002Fblog\u002Fpdf-document-parsing-for-rag\u002Fog.jpg",[49,50,51],"PDF-Parsing für RAG: Layout-Pipelines, OCR und Vision-Modelle im Vergleich","Warum das PDF-Parsing die RAG-Qualität bestimmt, wie sich Docling, Marker, MinerU und VLM-OCR unterscheiden und wie man einen Parser selbst testet.","Eine PDF-Seite durchläuft Layout-Erkennung, OCR und Tabellenrekonstruktion und wird zu sauberen Markdown-Chunks für einen Suchindex.",{"slug":369,"published":5,"minutes":370,"category":7,"tags":371,"keywords":375,"about":386,"sources":396,"cover":418,"og":419,"expertise":47,"locales":420,"lang":50,"title":421,"description":422,"coverAlt":423},"multilingual-rag-german-hungarian",7,[13,372,9,373,374],"Multilingual","German","Hungarian",[376,377,378,379,380,381,382,383,384,385],"multilingual rag","german rag embeddings","hungarian nlp search","cross-lingual retrieval","multilingual embedding model","bge-m3 german","german compound words search","hungarian stemming postgres","multilingual-e5-large-instruct","qwen3 embedding multilingual",[387,390,393],{"name":388,"url":389},"Cross-language information retrieval","https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FCross-language_information_retrieval",{"name":391,"url":392},"Agglutinative language","https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FAgglutinative_language",{"name":394,"url":395},"Compound (linguistics)","https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FCompound_(linguistics)",[397,400,403,406,409,412,415],{"title":398,"url":399},"Enevoldsen et al.: MMTEB: Massive Multilingual Text Embedding Benchmark (2025)","https:\u002F\u002Farxiv.org\u002Fabs\u002F2502.13595",{"title":401,"url":402},"Chen et al.: M3-Embedding (BGE-M3): Multi-Linguality, Multi-Functionality, Multi-Granularity (2024)","https:\u002F\u002Farxiv.org\u002Fabs\u002F2402.03216",{"title":404,"url":405},"Zhang et al.: Qwen3 Embedding: Advancing Text Embedding and Reranking Through Foundation Models (2025)","https:\u002F\u002Farxiv.org\u002Fabs\u002F2506.05176",{"title":407,"url":408},"Hugging Face: intfloat\u002Fmultilingual-e5-large-instruct model card","https:\u002F\u002Fhuggingface.co\u002Fintfloat\u002Fmultilingual-e5-large-instruct",{"title":410,"url":411},"Elasticsearch Reference: Hyphenation decompounder token filter","https:\u002F\u002Fwww.elastic.co\u002Fdocs\u002Freference\u002Ftext-analysis\u002Fanalysis-hyp-decomp-tokenfilter",{"title":413,"url":414},"PostgreSQL 18 Documentation: Text search dictionaries","https:\u002F\u002Fwww.postgresql.org\u002Fdocs\u002Fcurrent\u002Ftextsearch-dictionaries.html",{"title":416,"url":417},"Snowball: stemming algorithms by language","https:\u002F\u002Fsnowballstem.org\u002Falgorithms\u002F","\u002Fimages\u002Fblog\u002Fmultilingual-rag-german-hungarian\u002Fcover.webp","\u002Fimages\u002Fblog\u002Fmultilingual-rag-german-hungarian\u002Fog.jpg",[49,50,51],"Mehrsprachiges RAG für Deutsch und Ungarisch: Embeddings, Komposita und sprachübergreifende Suche","RAG über deutsche und ungarische Inhalte: mehrsprachige Embeddings, Komposita, Stemming, Akzente und Evaluation pro Sprache.","Eine deutsche und eine ungarische Anfrage treffen sich in einem mehrsprachigen Vektorraum neben sprachspezifischen Keyword-Indizes, danach Reranker und Antwort.",{"slug":425,"published":5,"minutes":426,"category":7,"tags":427,"keywords":433,"about":444,"sources":453,"cover":472,"og":473,"expertise":47,"locales":474,"lang":50,"title":475,"description":476,"coverAlt":477},"text-to-sql-llm-guardrails",8,[428,429,430,431,432],"Text-to-SQL","LLM security","PostgreSQL","Agents","Analytics",[434,435,436,437,438,439,440,441,442,443],"text to sql llm","text-to-sql guardrails","llm sql agent security","natural language to sql production","read only database role llm","bird benchmark text to sql","spider 2.0 benchmark","sqlglot validate sql","row level security llm","chat with your database",[445,448,451],{"name":446,"url":447},"SQL","https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FSQL",{"name":449,"url":450},"Natural language interface to databases","https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FNatural-language_user_interface",{"name":430,"url":452},"https:\u002F\u002Fwww.postgresql.org\u002F",[454,457,460,463,466,469],{"title":455,"url":456},"BIRD-bench: leaderboard and dataset description","https:\u002F\u002Fbird-bench.github.io\u002F",{"title":458,"url":459},"Lei et al.: Spider 2.0: Evaluating Language Models on Real-World Enterprise Text-to-SQL Workflows (2024)","https:\u002F\u002Farxiv.org\u002Fabs\u002F2411.07763",{"title":461,"url":462},"PostgreSQL 18 Documentation: Row Security Policies","https:\u002F\u002Fwww.postgresql.org\u002Fdocs\u002Fcurrent\u002Fddl-rowsecurity.html",{"title":464,"url":465},"PostgreSQL 18 Documentation: Client Connection Defaults (read-only and timeouts)","https:\u002F\u002Fwww.postgresql.org\u002Fdocs\u002Fcurrent\u002Fruntime-config-client.html",{"title":467,"url":468},"SQLGlot: SQL parser, transpiler and optimizer (GitHub)","https:\u002F\u002Fgithub.com\u002Ftobymao\u002Fsqlglot",{"title":470,"url":471},"OWASP Gen AI Security Project: LLM06:2025 Excessive Agency","https:\u002F\u002Fgenai.owasp.org\u002Fllmrisk\u002Fllm062025-excessive-agency\u002F","\u002Fimages\u002Fblog\u002Ftext-to-sql-llm-guardrails\u002Fcover.webp","\u002Fimages\u002Fblog\u002Ftext-to-sql-llm-guardrails\u002Fog.jpg",[49,50,51],"Text-to-SQL mit LLMs: Schema-Kontext, Read-only-Rollen und Validierung, die hält","Wie genau Text-to-SQL wirklich ist, wie das Modell Schema-Kontext bekommt und welche Datenbank- und Code-Leitplanken generiertes SQL sicher machen.","Eine Frage durchläuft Schema-Kontext, SQL-Generierung, einen Validator und eine Read-only-Datenbankrolle, bevor eine Ergebnistabelle zurückkommt.",{"slug":479,"published":480,"minutes":481,"category":7,"tags":482,"keywords":486,"about":496,"sources":504,"cover":541,"og":542,"expertise":47,"locales":543,"lang":50,"title":544,"description":545,"coverAlt":546},"graphrag-knowledge-graph-rag","2026-10-02",13,[483,484,485,13],"GraphRAG","Knowledge graphs","LightRAG",[483,487,488,489,490,491,492,493,494,495],"knowledge graph RAG","GraphRAG vs vector RAG","Microsoft GraphRAG explained","LightRAG vs GraphRAG","GraphRAG global vs local search","GraphRAG indexing cost","when to use GraphRAG","multi-hop RAG","LazyGraphRAG",[497,500,501],{"name":498,"url":499},"Knowledge graph","https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FKnowledge_graph",{"name":338,"url":339},{"name":502,"url":503},"Leiden algorithm","https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FLeiden_algorithm",[505,508,511,514,517,520,523,526,529,532,535,538],{"title":506,"url":507},"Edge et al.: From Local to Global: A Graph RAG Approach to Query-Focused Summarization (arXiv:2404.16130)","https:\u002F\u002Farxiv.org\u002Fabs\u002F2404.16130",{"title":509,"url":510},"Microsoft GraphRAG documentation: overview","https:\u002F\u002Fmicrosoft.github.io\u002Fgraphrag\u002F",{"title":512,"url":513},"Microsoft GraphRAG documentation: default dataflow","https:\u002F\u002Fmicrosoft.github.io\u002Fgraphrag\u002Findex\u002Fdefault_dataflow\u002F",{"title":515,"url":516},"Microsoft GraphRAG documentation: global search","https:\u002F\u002Fmicrosoft.github.io\u002Fgraphrag\u002Fquery\u002Fglobal_search\u002F",{"title":518,"url":519},"Microsoft GraphRAG documentation: local search","https:\u002F\u002Fmicrosoft.github.io\u002Fgraphrag\u002Fquery\u002Flocal_search\u002F",{"title":521,"url":522},"Microsoft GraphRAG documentation: DRIFT search","https:\u002F\u002Fmicrosoft.github.io\u002Fgraphrag\u002Fquery\u002Fdrift_search\u002F",{"title":524,"url":525},"Microsoft GraphRAG documentation: getting started","https:\u002F\u002Fmicrosoft.github.io\u002Fgraphrag\u002Fget_started\u002F",{"title":527,"url":528},"Microsoft Research: LazyGraphRAG, setting a new standard for quality and cost (25 November 2024)","https:\u002F\u002Fwww.microsoft.com\u002Fen-us\u002Fresearch\u002Fblog\u002Flazygraphrag-setting-a-new-standard-for-quality-and-cost\u002F",{"title":530,"url":531},"Guo et al.: LightRAG: Simple and Fast Retrieval-Augmented Generation (arXiv:2410.05779)","https:\u002F\u002Farxiv.org\u002Fabs\u002F2410.05779",{"title":533,"url":534},"HKUDS\u002FLightRAG on GitHub","https:\u002F\u002Fgithub.com\u002FHKUDS\u002FLightRAG",{"title":536,"url":537},"Gutiérrez et al.: HippoRAG: Neurobiologically Inspired Long-Term Memory for Large Language Models (arXiv:2405.14831)","https:\u002F\u002Farxiv.org\u002Fabs\u002F2405.14831",{"title":539,"url":540},"Xiang et al.: When to use Graphs in RAG: A Comprehensive Analysis for Graph Retrieval-Augmented Generation (arXiv:2506.05690)","https:\u002F\u002Farxiv.org\u002Fabs\u002F2506.05690","\u002Fimages\u002Fblog\u002Fgraphrag-knowledge-graph-rag\u002Fcover.webp","\u002Fimages\u002Fblog\u002Fgraphrag-knowledge-graph-rag\u002Fog.jpg",[49,50,51],"GraphRAG und Knowledge-Graph-RAG: wann ein Graph die Vektorsuche schlägt","Was Microsoft GraphRAG und LightRAG wirklich tun, was die Indexierung kostet und wann ein Wissensgraph Vektor-RAG schlägt: Multi-Hop, globale Fragen, Produktkataloge.","Diagramm: ein Wissensgraph als Zentrum, verbunden mit Entitäten, Communities, lokaler Suche, globaler Suche und Produktteilen.",1792177149382]