[{"data":1,"prerenderedAt":702},["ShallowReactive",2],{"blog-graphrag-en":3},{"slug":4,"published":5,"minutes":6,"category":7,"tags":8,"keywords":14,"about":22,"sources":29,"cover":48,"og":49,"expertise":50,"locales":51,"lang":52,"title":55,"description":56,"coverAlt":57,"metaTitle":58,"takeaways":59,"faq":65,"toc":78,"blocks":103,"others":450},"graphrag","2026-09-08",10,"rag",[9,10,11,12,13],"Knowledge graph","RAG","Global search","Community summaries","Token cost",[4,15,16,17,18,19,20,21],"microsoft graphrag","graphrag vs vector rag","graphrag indexing cost","graphrag query modes","graphrag lightRAG comparison","knowledge graph rag","graphrag dynamic community selection",[23,26],{"name":24,"url":25},"GraphRAG","https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fgraphrag\u002F",{"name":27,"url":28},"Retrieval-augmented generation","https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FRetrieval-augmented_generation",[30,33,36,39,42,45],{"title":31,"url":32},"GraphRAG on GitHub","https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fgraphrag",{"title":34,"url":35},"GraphRAG documentation","https:\u002F\u002Fmicrosoft.github.io\u002Fgraphrag\u002F",{"title":37,"url":38},"From Local to Global: A Graph RAG Approach to Query-Focused Summarization","https:\u002F\u002Farxiv.org\u002Fabs\u002F2404.16130",{"title":40,"url":41},"GraphRAG: Improving global search via dynamic community selection","https:\u002F\u002Fwww.microsoft.com\u002Fen-us\u002Fresearch\u002Fblog\u002Fgraphrag-improving-global-search-via-dynamic-community-selection\u002F",{"title":43,"url":44},"LazyGraphRAG: Setting a new standard for quality and cost","https:\u002F\u002Fwww.microsoft.com\u002Fen-us\u002Fresearch\u002Fblog\u002Flazygraphrag-setting-a-new-standard-for-quality-and-cost\u002F",{"title":46,"url":47},"Graph RAG in 2026: What Actually Works in Production","https:\u002F\u002Fwww.paperclipped.de\u002Fen\u002Fblog\u002Fgraph-rag-production\u002F","\u002Fimages\u002Fblog\u002Fgraphrag\u002Fcover.webp","\u002Fimages\u002Fblog\u002Fgraphrag\u002Fog.jpg","ai-engineer",[52,53,54],"en","de","hu","Microsoft GraphRAG: a knowledge-graph RAG priced up front","A review of Microsoft GraphRAG 3.2.0: MIT, maintenance mode, and an indexing bill that is decided before the first query runs.","Six circles joined into a network, an arrow to a large box blocked by a weighted gate.","GraphRAG review: what the graph costs · Balázs Csorba",[60,61,62,63,64],"GraphRAG 3.2.0 was published on 23 September 2026 under MIT, while the repository states it is largely in maintenance mode with no new features.","The bill lands at indexing time: one model call per TextUnit and one per community report, reported at $50-200 for a 500-page corpus against under $5 for vectors.","Global Search is the mode vector search cannot imitate, and dynamic community selection cuts its token cost by 77% without a measured quality loss.","LazyGraphRAG reaches vector-RAG indexing cost at 0.1% of full GraphRAG, but ships in Microsoft Discovery and Azure Local rather than in the MIT package.","The graph pays only when questions are corpus-wide or multi-hop; lookup-heavy workloads stay cheaper on plain vector search.",[66,69,72,75],{"q":67,"a":68},"How much does GraphRAG cost to run?","The package is MIT and nothing is hosted, so the whole bill is model calls: one extraction call per TextUnit of 1,200 tokens, one summarisation call per merged entity or relationship, and one report call per community at every hierarchy level. One independent comparison puts a 500-page corpus at $50-200 and about 45 minutes through the full pipeline, against under $5 to embed the same corpus for vector search.",{"q":70,"a":71},"When does GraphRAG beat vector search?","When the answer has to be synthesised across the corpus or hop between entities that never share a chunk: themes, trends, comparisons over everything. Direct factual lookups map onto single chunks, so they gain nothing from the graph, and GraphRAG ships its own Basic mode — vector retrieval over the same embeddings — precisely for measuring that difference.",{"q":73,"a":74},"Is GraphRAG still maintained?","The README says the project is largely in maintenance mode: no new pull requests, no new features, bug fixes and dependency updates as appropriate. It also describes the code as a demonstration rather than an officially supported Microsoft offering. The latest release, 3.2.0, arrived on 23 September 2026, and 36,241 stars sit above 495 commits and 49 open issues and pull requests.",{"q":76,"a":77},"What does LazyGraphRAG change?","It drops the LLM from indexing and uses noun-phrase extraction instead, so indexing cost is stated as identical to vector RAG and 0.1% of full GraphRAG. Microsoft Research reports comparable Global Search quality at more than 700 times lower query cost, and better-than-Global-Search quality at 4% of its cost. The implementation lives in Microsoft Discovery and Azure Local, not in the MIT repository, so a self-hosted team cannot install it.",[79,82,85,88,91,94,97,100],{"id":80,"title":81},"what-it-is","What it is",{"id":83,"title":84},"how-it-works","How it works",{"id":86,"title":87},"getting-started","Getting started",{"id":89,"title":90},"indexing-cost","What indexing costs",{"id":92,"title":93},"query-cost","What queries cost",{"id":95,"title":96},"where-it-shingles","Where it falls short",{"id":98,"title":99},"verdict","Verdict",{"id":101,"title":102},"sources","Sources",[104,113,120,123,130,152,158,159,165,171,178,179,185,187,193,204,205,211,259,268,269,274,321,330,331,340,382,391,392,398,412,424,428,429],{"type":105,"content":106},"paragraph",[107,108,109,110,111,112],"GraphRAG is Microsoft Research’s MIT-licensed pipeline that turns a corpus into a knowledge graph, ","clusters it with the Leiden algorithm and writes an LLM summary for every community before a single ","question is asked. The position taken here is that it remains the most rigorously documented graph RAG ","available, and that the interesting part is no longer the engineering: the repository is in maintenance ","mode, and the question a team actually has to answer is whether the indexing bill can be justified ","against vector search.",{"type":105,"content":114},[115,116,117,118,119],"It competes with plain vector RAG, with lighter graph pipelines such as LightRAG, and with the graph ","retrieval built into LlamaIndex and Neo4j tooling. The distinction matters because GraphRAG is not a ","service: it is a Python package that spends the reader’s own tokens building an index and then exposes ","four query modes as library functions. Nothing is billed or hosted by Microsoft, and the README states ","that the code is a demonstration rather than an officially supported offering.",{"type":121,"level":122,"id":80,"text":81},"heading",2,{"type":105,"content":124},[125,126,127,128,129],"The design is deliberately front-loaded. Documents are split into TextUnits, an LLM extracts entities ","and relationships from each unit, duplicate descriptions are merged and summarised, Leiden clustering ","assigns the graph to a hierarchy of communities, and a further LLM pass writes a report for every ","community at every level. Only then does a question run, and by then the expensive work has already been ","paid for.",{"type":131,"ordered":132,"items":133},"list",false,[134,140,142,144,146,148,150],[135,136,139],"MIT licensed, shipped as ",{"tag":137,"children":138},"code",[4]," on PyPI, current release 3.2.0 of 23 September 2026, Python 3.11 to 3.13.",[141],"About 36,200 stars, 3,800 forks and 495 commits on GitHub, with 49 open issues and pull requests.",[143],"TextUnits default to 1,200 tokens: larger chunks index faster and extract less precisely.",[145],"Community detection is hierarchical Leiden and costs no model calls; summarising every community does.",[147],"Four query modes ship in the package — global, local, DRIFT and basic — plus dynamic community selection for global search.",[149],"The CLI names four indexing methods: standard, fast, standard-update and fast-update, with a separate update command for changed documents.",[151],"Every call goes to the reader’s own endpoint — Azure OpenAI, OpenAI or a compatible service — so cost is a function of model price and corpus size.",{"type":105,"content":153},[154,155,156,157],"Two consequences follow. The index becomes an asset rather than a by-product: entity descriptions and ","community reports are readable artefacts that can be reviewed, shared and versioned like any other ","output. And the graph is only as good as the extraction pass, so a corpus whose entity types matter has ","to be tuned before the first full run rather than after it.",{"type":121,"level":122,"id":83,"text":84},{"type":105,"content":160},[161,162,163,164],"Indexing is a fixed sequence: chunk, extract, merge, cluster, summarise, embed. Every stage either costs ","one model call per unit of text or costs nothing, and that boundary is where the bill comes from — one ","extraction call per TextUnit, one summarisation call per merged entity or relationship, and one report ","call per community at every level of the hierarchy.",{"type":166,"src":167,"alt":168,"wide":169,"caption":170},"image","\u002Fimages\u002Fblog\u002Fgraphrag\u002Fdiagram-8.webp","One GraphRAG index, then four query modes Indexing splits the corpus into TextUnits, spends one model call per unit on extraction, clusters the graph with Leiden and spends one model call per community on reports. A question then routes to one of four modes: global map-reduce over the reports, local search around entities, DRIFT with follow-up questions, or basic vector search.",true,"The expensive row is the first one: every query reuses an index that has already been paid for.",{"type":105,"content":172},[173,174,175,176,177],"The four modes are the product surface. Global Search runs map-reduce over community reports and is the ","mode vector search cannot imitate, because no chunk contains a corpus-wide answer. Local Search walks the ","graph around named entities and costs roughly what vector retrieval costs with traversal on top. DRIFT ","starts from the most relevant reports, asks follow-up questions and answers each of them locally. Basic ","Search is the package’s own vector RAG, included so a team can measure what the graph buys on its own data.",{"type":121,"level":122,"id":86,"text":87},{"type":105,"content":180},[181,182,183,184],"The entry point is a directory, an init command and two files. The sequence below creates a workspace, ","points it at a workable model, indexes a small input folder and asks a global question; settings.yaml is ","where the bill is set, so a first run should stay on a small corpus and an inexpensive model until the ","prompts have been tuned.",{"type":137,"code":186},"python -m venv .venv && source .venv\u002Fbin\u002Factivate\npython -m pip install graphrag\n\nmkdir ragtest && cd ragtest\ngraphrag init -r . -m gpt-4.1 -e text-embedding-3-large\n# write GRAPHRAG_API_KEY into the .env that init created\n# drop a few .txt or .md files into .\u002Finput, then index:\ngraphrag index -r . -m standard\n\n# global is the default; this prunes reports before the map-reduce step\ngraphrag query \"What are the top themes across these documents?\" -r . \\\n  --dynamic-community-selection\n\ngraphrag query \"Who is the main character?\" -r . -m local\ngraphrag update -r . -m standard-update\n",{"type":105,"content":188},[189,190,191,192],"Two habits keep the first bill small. Index a sample rather than the corpus, because the pipeline calls ","the model once per TextUnit and once per community level whatever the model costs; and run prompt-tune ","before scaling, since the documentation states that prompts used out of the box rarely produce the best ","results.",{"type":194,"variant":195,"title":196,"body":197},"callout","warn","Maintenance mode is part of the risk",[198],[199,200,201,202,203],"The README states that the project is largely in maintenance mode, will not accept new pull requests or ","implement new features, and that bug fixes and dependency updates happen as appropriate. It also states ","that the provided code serves as a demonstration and is not an officially supported Microsoft offering. ","For a team that would have to own this pipeline for years, both sentences belong in the risk register, ","next to the indexing bill.",{"type":121,"level":122,"id":89,"text":90},{"type":105,"content":206},[207,208,209,210],"There is no licence fee and no hosted service, so the entire cost is model calls. Extraction runs once ","per TextUnit and community reporting once per community at every level, which means the bill scales with ","corpus size and with the number of communities the Leiden hierarchy produces. The figures below come from ","one independent comparison published in March 2026 at GPT-4 pricing, not from a Microsoft price list:",{"type":212,"head":213,"rows":222},"table",[214,216,218,220],[215],"Approach",[217],"500-page index",[219],"Time",[221],"What you get",[223,232,241,250],[224,226,228,230],[225],"GraphRAG full pipeline",[227],"$50-200",[229],"about 45 min",[231],"entity graph, community reports, global search",[233,235,237,239],[234],"Vector RAG",[236],"under $5",[238],"minutes",[240],"chunks by similarity, no global queries",[242,244,246,248],[243],"LightRAG",[245],"about $0.50",[247],"about 3 min",[249],"flat graph, weaker global queries",[251,253,255,257],[252],"LazyGraphRAG",[254],"stated at 0.1% of full GraphRAG",[256],"not stated",[258],"not shipped in the MIT package",{"type":105,"content":260},[261,262,263,264,265,266,267],"The counter-measure Microsoft Research published is LazyGraphRAG, which replaces LLM extraction with ","noun-phrase extraction and defers every model call to query time. Its indexing cost is stated as ","identical to vector RAG and 0.1% of full GraphRAG, and the same evaluation reports comparable Global ","Search quality at more than 700 times lower query cost, or better-than-Global-Search quality at 4% of its ","cost. The implementation ships in Microsoft Discovery and Azure Local rather than in the MIT package, so a ","team running the open-source pipeline cannot install it: the number describes a direction, not an option ","on the shelf.",{"type":121,"level":122,"id":92,"text":93},{"type":105,"content":270},[271,272,273],"Query cost is where the modes differ and where the index either earns or fails to earn the money already ","spent on it. Global Search is the expensive one because it reads community reports in batches and then ","reduces them; the other three read a fraction of the graph:",{"type":212,"head":275,"rows":284},[276,278,280,282],[277],"Mode",[279],"What it reads",[281],"Cost shape",[283],"When to use it",[285,294,303,312],[286,288,290,292],[287],"Global",[289],"community reports at one level or a pruned selection",[291],"grows with the number of reports",[293],"corpus-wide synthesis",[295,297,299,301],[296],"Local",[298],"entity neighbourhood and its text units",[300],"vector retrieval plus traversal",[302],"entity and relationship questions",[304,306,308,310],[305],"DRIFT",[307],"top reports, then follow-up questions answered locally",[309],"between local and global",[311],"scoped questions that still need coverage",[313,315,317,319],[314],"Basic",[316],"embedded text units",[318],"the package’s own vector baseline",[320],"single-hop factual lookups",{"type":105,"content":322},[323,324,325,326,327,328,329],"Dynamic community selection is the published fix for the first row: a cheaper model rates each report ","from the root and prunes irrelevant branches before map-reduce. Microsoft Research measured an average ","77% reduction in token cost against static level-1 search over 50 global questions, with about 1,500 ","reports falling to 470 and no statistically significant difference in quality; letting the rating continue ","to level 3 cost 34% more on average and won 58.8% on comprehensiveness and 60.0% on empowerment. These ","are vendor figures from one dataset, but the direction is not in dispute — stop paying for reports that ","cannot answer the question.",{"type":121,"level":122,"id":95,"text":96},{"type":105,"content":332},[333,334,335,336,337,338,339],"The weaknesses are operational rather than algorithmic. The repository is in maintenance mode, so prompt ","formats, model behaviour and dependency drift are the reader’s problem, and the README calls the code a ","demonstration. Updating is its own command rather than a background job: documents change, entities merge, ","communities shift, and the update methods still extract changed text at model-call prices. The graph also ","carries the ontology, because entity and relationship types come from open-ended extraction, so a noisy ","corpus produces a noisy graph. Most importantly, the index is paid for whether or not questions arrive — ","the opposite of vector search’s pay-per-query profile.",{"type":212,"head":341,"rows":349},[342,344,345,347],[343],"Tool",[81],[346],"Where it runs",[348],"What you pay",[350,358,366,373],[351,352,354,356],[24],[353],"full pipeline with community summaries",[355],"Python package on your own keys",[357],"model calls while indexing and querying",[359,360,362,364],[234],[361],"chunk embeddings and similarity search",[363],"any vector store",[365],"embedding calls, cheap queries",[367,368,370,371],[243],[369],"flat graph with lighter extraction",[355],[372],"reported at about 1\u002F100 of the indexing cost",[374,376,378,380],[375],"Graphiti",[377],"temporal graph for agent memory",[379],"your stack with a Neo4j instance",[381],"extraction per interaction",{"type":105,"content":383},[384,385,386,387,388,389,390],"Read that table as a statement about the question each system is built for. GraphRAG answers corpus-wide ","and multi-hop questions that no single chunk contains; vector RAG answers lookup questions faster and more ","cheaply, which is why GraphRAG ships its own Basic mode rather than pretending the graph wins everywhere. ","LightRAG is the reasonable default when a flat graph captures most of the value at a fraction of the cost, ","and Graphiti solves agent memory rather than document retrieval. The position taken here is that most ","teams reach for the full pipeline because its benchmark is impressive, when their query mix is dominated ","by lookups — and the cheapest first step is to measure that mix before indexing anything.",{"type":121,"level":122,"id":98,"text":99},{"type":105,"content":393},[394,395,396,397],"GraphRAG is the right tool for a corpus whose questions are genuinely global, and the wrong default for a ","search box. It is the best-documented graph RAG available, it is MIT, and its index is a reusable artefact ","with reports people can read; it is also in maintenance mode, priced up front and slower to change than the ","corpus it indexes. Adopt it with a measured query mix and a small first corpus, or do not adopt it.",{"type":131,"ordered":169,"items":399},[400,402,404,406,408,410],[401],"Choose it when a meaningful share of questions need synthesis across the whole corpus: themes, trends, comparisons over everything.",[403],"Choose it when answers depend on hops between entities that never appear in the same chunk.",[405],"Choose it when the index itself has value — reports that people read, share and audit — because that is what the upfront spend buys.",[407],"Do not choose it for a lookup-heavy search box: vector search is cheaper per query, and GraphRAG’s own Basic mode is that same search.",[409],"Do not treat it as a maintained dependency; the repository states maintenance mode and no new features.",[411],"Before the full run, measure the query mix and index a sample with dynamic community selection enabled.",{"type":105,"content":413},[414,415,416,417,418,423],"One further consideration is where the index lives. It is a batch artefact, so it belongs where batch ","artefacts belong: built by a pipeline, versioned, reviewed and replaced, rather than rebuilt from inside a ","request handler. The mechanics of what the graph contains — entities, TextUnits, communities — are covered ","in an earlier piece on ",{"tag":419,"to":420,"children":421},"link","\u002Fblog\u002Fgraphrag-knowledge-graph-rag",[422],"knowledge-graph RAG","; this review is about the implementation, its modes and its bill.",{"type":425,"content":426},"quote",[427],"GraphRAG indexing can be an expensive operation, please read all of the documentation to understand the process and costs involved, and start small.",{"type":121,"level":122,"id":101,"text":102},{"type":131,"ordered":169,"items":430},[431,435,438,441,444,447],[432],{"tag":433,"href":32,"children":434},"a",[31],[436],{"tag":433,"href":35,"children":437},[34],[439],{"tag":433,"href":38,"children":440},[37],[442],{"tag":433,"href":41,"children":443},[40],[445],{"tag":433,"href":44,"children":446},[43],[448],{"tag":433,"href":47,"children":449},[46],[451,526,583,641],{"slug":452,"published":453,"minutes":454,"category":7,"tags":455,"keywords":460,"about":473,"sources":483,"cover":520,"og":521,"expertise":50,"locales":522,"lang":52,"title":523,"description":524,"coverAlt":525},"embedding-model-selection-2026","2026-10-17",9,[456,10,457,458,459],"Embeddings","MTEB","Vector search","Model selection",[461,462,463,464,465,466,467,468,469,470,471,472],"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",[474,477,480],{"name":475,"url":476},"Word embedding","https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FWord_embedding",{"name":478,"url":479},"Information retrieval","https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FInformation_retrieval",{"name":481,"url":482},"Discounted cumulative gain","https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FDiscounted_cumulative_gain",[484,487,490,493,496,499,502,505,508,511,514,517],{"title":485,"url":486},"Enevoldsen et al.: MMTEB, Massive Multilingual Text Embedding Benchmark (2025)","https:\u002F\u002Farxiv.org\u002Fabs\u002F2502.13595",{"title":488,"url":489},"Hugging Face: Introducing RTEB, a new standard for retrieval evaluation (Oct 2025)","https:\u002F\u002Fhuggingface.co\u002Fblog\u002Frteb",{"title":491,"url":492},"OpenAI: Vector embeddings guide","https:\u002F\u002Fdevelopers.openai.com\u002Fapi\u002Fdocs\u002Fguides\u002Fembeddings",{"title":494,"url":495},"OpenAI: API pricing","https:\u002F\u002Fdevelopers.openai.com\u002Fapi\u002Fdocs\u002Fpricing",{"title":497,"url":498},"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":500,"url":501},"Voyage AI: Text embeddings documentation","https:\u002F\u002Fdocs.voyageai.com\u002Fdocs\u002Fembeddings",{"title":503,"url":504},"Voyage AI: Pricing","https:\u002F\u002Fdocs.voyageai.com\u002Fdocs\u002Fpricing",{"title":506,"url":507},"Google: Gemini API embeddings documentation","https:\u002F\u002Fai.google.dev\u002Fgemini-api\u002Fdocs\u002Fembeddings",{"title":509,"url":510},"Google: Gemini API pricing","https:\u002F\u002Fai.google.dev\u002Fgemini-api\u002Fdocs\u002Fpricing",{"title":512,"url":513},"Cohere: Embed models documentation","https:\u002F\u002Fdocs.cohere.com\u002Fdocs\u002Fcohere-embed",{"title":515,"url":516},"Qwen: Qwen3-Embedding-8B model card","https:\u002F\u002Fhuggingface.co\u002FQwen\u002FQwen3-Embedding-8B",{"title":518,"url":519},"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",[52,53,54],"Choosing an embedding model in 2026: leaderboards, costs and a bake-off on your own data","How to pick an embedding model for RAG in 2026: what MTEB and RTEB tell you, hosted vs open weights, prices, dimensions, and a one-week bake-off.","Three columns of stacked blocks, the middle tallest, each measured by a short bar and a wide bracket.",{"slug":527,"published":453,"minutes":6,"category":7,"tags":528,"keywords":532,"about":544,"sources":552,"cover":577,"og":578,"expertise":50,"locales":579,"lang":52,"title":580,"description":581,"coverAlt":582},"contextual-retrieval-late-chunking",[10,529,456,530,531],"Chunking","Contextual retrieval","Late chunking",[533,534,535,536,537,538,539,540,541,542,543],"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",[545,546,549],{"name":27,"url":28},{"name":547,"url":548},"Okapi BM25","https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FOkapi_BM25",{"name":550,"url":551},"Sentence embedding","https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FSentence_embedding",[553,556,559,562,565,568,571,574],{"title":554,"url":555},"Anthropic: Introducing Contextual Retrieval (Sep 2024)","https:\u002F\u002Fwww.anthropic.com\u002Fnews\u002Fcontextual-retrieval",{"title":557,"url":558},"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":560,"url":561},"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":563,"url":564},"Voyage AI: Introducing voyage-context-3 (Jul 2025)","https:\u002F\u002Fblog.voyageai.com\u002F2025\u002F07\u002F23\u002Fvoyage-context-3\u002F",{"title":566,"url":567},"Voyage AI: voyage-context-4 (Jun 2026)","https:\u002F\u002Fblog.voyageai.com\u002F2026\u002F06\u002F29\u002Fvoyage-context-4\u002F",{"title":569,"url":570},"Voyage AI: Contextualized chunk embeddings documentation","https:\u002F\u002Fdocs.voyageai.com\u002Fdocs\u002Fcontextualized-chunk-embeddings",{"title":572,"url":573},"Anthropic: Claude API pricing","https:\u002F\u002Fplatform.claude.com\u002Fdocs\u002Fen\u002Fabout-claude\u002Fpricing",{"title":575,"url":576},"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",[52,53,54],"Contextual retrieval and late chunking: giving RAG chunks back their context","Chunks lose their document. How contextual retrieval, late chunking and contextualized embedding models fix that, what each costs, and when to skip it.","Four loose square pieces gathered by a wide bracket below, each joined upward to a large sheet.",{"slug":584,"published":453,"minutes":454,"category":7,"tags":585,"keywords":589,"about":602,"sources":610,"cover":635,"og":636,"expertise":50,"locales":637,"lang":52,"title":638,"description":639,"coverAlt":640},"rag-access-control-permissions",[10,586,587,588,458],"Access control","Security","Multi-tenancy",[590,591,592,593,594,595,596,597,598,599,600,601],"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",[603,606,609],{"name":604,"url":605},"Access-control list","https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FAccess-control_list",{"name":607,"url":608},"Multitenancy","https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FMultitenancy",{"name":27,"url":28},[611,614,617,620,623,626,629,632],{"title":612,"url":613},"OWASP GenAI Security Project: LLM08:2025 Vector and Embedding Weaknesses","https:\u002F\u002Fgenai.owasp.org\u002Fllmrisk\u002Fllm082025-vector-and-embedding-weaknesses\u002F",{"title":615,"url":616},"PostgreSQL documentation: Row Security Policies","https:\u002F\u002Fwww.postgresql.org\u002Fdocs\u002Fcurrent\u002Fddl-rowsecurity.html",{"title":618,"url":619},"pgvector README: filtering and iterative index scans","https:\u002F\u002Fgithub.com\u002Fpgvector\u002Fpgvector",{"title":621,"url":622},"Qdrant: Multitenancy and partitions guide","https:\u002F\u002Fqdrant.tech\u002Fdocumentation\u002Fguides\u002Fmultiple-partitions\u002F",{"title":624,"url":625},"Pinecone: Implement multitenancy using namespaces","https:\u002F\u002Fdocs.pinecone.io\u002Fguides\u002Findex-data\u002Fimplement-multitenancy",{"title":627,"url":628},"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":630,"url":631},"OpenFGA: RAG authorization use case","https:\u002F\u002Fopenfga.dev\u002Fdocs\u002Fuse-cases\u002Frag-authorization",{"title":633,"url":634},"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",[52,53,54],"Access control for RAG: permission-aware retrieval without leaking documents","How RAG assistants leak documents and how to stop it: ACLs on every chunk, pre-filtering, row-level security in pgvector, permission sync and leak tests.","Seven cards in a row, six with a lock badge, one bare card sending an arrow outward.",{"slug":642,"published":453,"minutes":6,"category":7,"tags":643,"keywords":648,"about":660,"sources":668,"cover":695,"og":696,"expertise":697,"locales":698,"lang":52,"title":699,"description":700,"coverAlt":701},"rag-product-catalog-pim-data",[10,644,645,646,647],"PIM","Product data","B2B e-commerce","Metadata filtering",[649,650,651,652,653,654,655,656,657,658,659],"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",[661,664,665],{"name":662,"url":663},"Product information management","https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FProduct_information_management",{"name":27,"url":28},{"name":666,"url":667},"ETIM (standard)","https:\u002F\u002Fwww.etim-international.com\u002Fclassification\u002F",[669,672,675,678,680,683,686,689,692],{"title":670,"url":671},"Akeneo API: Products, product values, metric values and product models","https:\u002F\u002Fapi.akeneo.com\u002Fconcepts\u002Fproducts.html",{"title":673,"url":674},"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":676,"url":677},"Pimcore documentation: Classification Store","https:\u002F\u002Fdocs.pimcore.com\u002Fplatform\u002FPimcore\u002FObjects\u002FObject_Classes\u002FData_Types\u002FClassification_Store\u002F",{"title":679,"url":667},"ETIM International: Classification",{"title":681,"url":682},"ETIM International: ETIM releases and the IXF format","https:\u002F\u002Fetim-international.com\u002F?p=754",{"title":684,"url":685},"Reddy et al.: Shopping Queries Dataset, a large-scale ESCI benchmark for improving product search (2022)","https:\u002F\u002Farxiv.org\u002Fabs\u002F2206.06588",{"title":687,"url":688},"Amazon Science: esci-data repository","https:\u002F\u002Fgithub.com\u002Famazon-science\u002Fesci-data",{"title":690,"url":691},"Qdrant documentation: Filtering","https:\u002F\u002Fqdrant.tech\u002Fdocumentation\u002Fconcepts\u002Ffiltering\u002F",{"title":693,"url":694},"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",[52,53,54],"RAG over product catalogues: turning PIM data into answers that hold","Product data is structured, so chunking it like PDFs fails. How to serialize PIM attributes, route spec questions to filters and keep answers exact.","A frame of nine squares with tiny symbols, funnelling down to one card.",1792261155918]