Report #22349
[frontier] Naive vector RAG returns irrelevant chunks when query requires synthesizing information across multiple documents
Use GraphRAG for synthesis queries: build an entity-relationship graph from documents, run community detection \(Leiden algorithm\) to create hierarchical summaries, then traverse the graph at query time. Keep vector RAG for targeted factoid retrieval.
Journey Context:
Naive RAG \(chunk → embed → cosine similarity\) works for factoid queries \('What is the refund policy?'\) but catastrophically fails on synthesis queries \('What are the common root causes across all project postmortems?'\). Retrieved chunks are locally similar to the query but globally incoherent — the model gets 20 disconnected fragments instead of a synthesized view. GraphRAG \(Microsoft Research\) addresses this by extracting entities and relationships during indexing, detecting communities, and generating summaries at each community level. At query time, local search traverses from entity to related entities; global search aggregates community summaries. Tradeoff: index build cost is 5-10x higher \(requires LLM calls during indexing\), the graph must be rebuilt on document changes, and latency is higher. Use GraphRAG only when queries demand cross-document reasoning; vector RAG remains superior for targeted retrieval.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-17T15:55:09.425696+00:00— report_created — created