Skip to main content
AI & Technology

GraphRAG vs Vector RAG: When a Knowledge Graph Actually Beats Embeddings

Vector search finds the passage that resembles your question. Some questions have no such passage. Here's the class of question GraphRAG exists for — and when it isn't worth the cost.

14 min read
Share:
Split-screen comparison illustration titled Graph RAG versus Vector RAG. On the blue left side, vector RAG runs from source data through an embedding model into a glowing cube of scattered points, then to query, LLM and answer, labelled primary method: semantic similarity. On the purple right side, graph RAG runs from source data through entity extraction into a connected node graph, then to query, LLM and answer, labelled primary method: relationship traversal
Credit: PrimusSource (original illustration)

Standard retrieval-augmented generation does one thing, and it does it well: given a question, it finds the passages that most resemble the question and hands them to the model. Ask "which clause covers early termination?" and somewhere in the contract there is a paragraph about early termination. Similarity search finds it. Everyone goes home.

Now ask: "what themes recur across all five hundred of these contracts?"

There is no paragraph that answers that. The answer is a property of the collection, not of any passage inside it. You can improve the embedding model, tune the chunk size, rerank harder — and you will still be ranking passages by resemblance to a question whose answer was never written down. The failure is structural.

That gap is the entire reason GraphRAG exists. It is not a better retriever; it is a different operation. And because it is a different operation, it costs differently — which is why the honest comparison is not "which is better" but "which shape of question do you actually have, and can you afford the index?"

The Two Question Shapes

The distinction has a name in the literature. Microsoft Research's team put it plainly in the paper that introduced GraphRAG: RAG "fails on global questions directed at an entire text corpus, such as What are the main themes in the dataset?, since this is inherently a query-focused summarization (QFS) task, rather than an explicit retrieval task."

Two-panel diagram contrasting question types. The left green panel shows a lookup question, which clause covers early termination, with six document chunks and one highlighted, noting the answer sits inside one passage and that vector search solves this well by finding the chunk most similar to the question. The right red panel shows a sensemaking question, what themes recur across all 500, with six chunks all marked with question marks, noting no passage contains the answer because it is a property of the collection as a whole, so similarity has nothing to rank. A caption quotes Edge et al. saying RAG fails on global questions directed at an entire text corpus
Lookup questions have an answer sitting in a passage. Sensemaking questions don't — so ranking passages by similarity has nothing useful to rank.

Note the second half of that sentence, because it explains why the answer wasn't simply "use a summarisation tool." Query-focused summarisation was a well-studied problem before RAG existed. The catch, as the paper says, is that prior methods "do not scale to the quantities of text indexed by typical RAG systems." You could summarise a document. You could not summarise a million-token corpus for every question a user might ask.

GraphRAG is an attempt to get summarisation's coverage at retrieval's scale.

What GraphRAG Does Instead

The trick is to do the expensive reading once, at index time, and store the result as structure.

Diagram of GraphRAG's two stages. Stage one, building the index once and described as the expensive part, runs from source documents to extracting entities with an LLM reading every document, to building a graph of entities plus their relationships, to summarising clusters with one summary per community. Stage two, answering a question every time, runs from the question to every community summary producing a partial response, to combining the partials into one final answer. A caption notes this is a map-reduce over the whole corpus rather than a search of it
Nothing here is ranked by similarity. Every community of related entities contributes an answer, and those answers are merged — which is where the coverage comes from, and the cost.

Stage one — build the index. An LLM reads the source documents and extracts the entities in them along with the relationships between those entities, producing a knowledge graph. Community-detection then groups closely related entities into clusters, and the system pregenerates a summary for each community. This is done once, and it is the part that costs real money, because an LLM has to read everything.

Stage two — answer a question. Rather than retrieving the top few chunks, the question is put to every community summary. Each produces a partial response, and all the partial responses are then summarised into a single final answer.

If that sounds less like search and more like map-reduce, that's exactly right. Nothing is being ranked by similarity at query time. Every part of the corpus gets a vote, which is precisely how the system can answer a question whose answer is spread across the whole collection.

If retrieval basics are new to you, our guide to retrieval-augmented generation covers the vector-search half of this comparison in detail; the rest of our model coverage lives in the LLMs topic hub.

What the Evidence Actually Says

The original paper — Edge, Trinh and colleagues, first posted April 2024 and revised in February 2025 — evaluated the approach on "global sensemaking questions over datasets in the 1 million token range" and reports "substantial improvements over a conventional RAG baseline for both the comprehensiveness and diversity of generated answers."

Two things about that result deserve to be stated clearly, because summaries of this paper routinely skip both.

The win is on a specific question class, not in general. Global, corpus-wide questions are where the improvement shows up. On specific lookup queries, conventional semantic search performs better — and cheaper. Anyone presenting GraphRAG as a straight upgrade to vector RAG is describing something the research does not claim.

The metrics are judgement calls. Comprehensiveness and diversity were assessed in head-to-head comparisons scored by a language model, not against a gold-standard answer key. That is a reasonable methodology for open-ended questions that have no single correct answer — there isn't much alternative — but LLM-as-judge evaluation carries known biases, and Microsoft has since published BenchmarkQED as tooling to make this kind of comparison more systematic. Treat the direction of the finding as solid and the magnitude as approximate.

The Objection That Nearly Killed It

For most of 2024 and 2025, the practical answer to "should we use GraphRAG?" was "we costed the index and stopped there."

The reason is visible in the pipeline. Vector RAG's index cost is one embedding pass over your documents — cheap, and roughly linear. GraphRAG's index cost is an LLM reading every document and writing structured output about it, and then summarising every community it finds. On a large corpus that is a bill that needs approving.

Microsoft's own response to this was LazyGraphRAG, which restructures where the work happens. Rather than pregenerating the entire graph and every community summary up front, it combines vector and graph search on the fly and defers the heavy LLM analysis to query time. The reported effect on cost is dramatic: LazyGraphRAG's data indexing costs are "identical to vector RAG and 0.1% of the costs of full GraphRAG".

That reframes the decision. When indexing was a five-figure commitment, graph retrieval was a strategic bet. When indexing costs the same as embedding, it becomes something you can try on a Tuesday — which is why the deferred approach is a sensible default for exploratory work, one-off questions and streaming data where you'd never amortise a full index.

Query-time cost is the trade you're making instead. Consulting many community summaries and merging their answers uses far more tokens per question than fetching five chunks. You have moved the expense, not removed it — and where you want it depends entirely on your ratio of queries to documents.

Side by Side

Vector RAGGraphRAG (full)Lazy / hybrid
Core operationRank passages by similarityMap-reduce over community summariesVector search, escalating to graph on demand
Index costLow — one embedding passHigh — an LLM reads everythingReported as identical to vector RAG
Query costLow — a handful of chunksHigh — long prompts, many partialsPaid only when a question needs it
Wins onLookups, specific facts, citationsThemes, coverage, relationships, "what's across all of this"Mixed workloads and exploration
Loses onAnything corpus-wideSimple lookups it answers expensivelyNothing obvious — the usual starting point
Multi-hop questionsWeak — needs the hops in one chunkStrong — relationships are explicit in the graphDepends on escalation

The multi-hop row is worth dwelling on, because it's the most common real-world case that quietly breaks vector search. "Which of our suppliers is exposed to the same shipping route as our largest customer?" requires connecting a supplier to a route, a route to a customer, and a customer to a revenue ranking. No single chunk contains that chain. A graph has the edges; an embedding space only has proximity.

How to Choose

Three-column comparison diagram. Vector RAG, for when facts live in specific passages, has low index cost from embedding once, low query cost of a few chunks, is best at lookup and fact retrieval, and fails at corpus-wide questions. GraphRAG, for when answers span the whole corpus, has high index cost because an LLM reads it all, high query cost from long prompts, is best at themes, coverage and connections, and fails at being cheap for simple lookups. Lazy or hybrid, for when you have both kinds of question, has index cost the same as vector RAG, query cost paid only when needed, is best at mixed and exploratory work, and has no obvious weakness. A caption reports Microsoft's finding that LazyGraphRAG indexing costs are identical to vector RAG and 0.1% of full GraphRAG
The deciding factor is the shape of your questions first, your indexing budget second. For most teams the answer isn't one of the three — it's routing.

A workable order of operations:

  1. Write down twenty real questions your users ask. Not hypotheticals — actual queries, from logs if you have them.
  2. Sort them into lookup and corpus-wide. If nearly all are lookups, stop. You need better chunking and reranking, not a graph.
  3. If a meaningful share are corpus-wide, start with the deferred approach. The index costs what embedding costs, so the experiment is nearly free and the result tells you whether graph structure helps your data.
  4. Only commit to a full pregenerated index when the same corpus-wide questions get asked repeatedly by many users, so pregeneration amortises.
  5. Route rather than replace. Classify the incoming question and send it down the cheaper path when the cheaper path suffices. This is unglamorous and it is what production systems converge on.

Retrieval rarely sits on its own, either. Inside an agent loop a retriever is simply one more tool the model can request, and MCP is increasingly how that tool gets connected to the data in the first place — neither of which changes the choice above, but both determine how the retrieved text reaches the model.

One more consideration that has nothing to do with quality: a knowledge graph is inspectable. You can look at the entities and edges the extraction produced, spot that it merged two different people with the same name, and fix it. An embedding index offers no comparable surface. For regulated or high-stakes work, auditability can matter more than the win rate.

Common Misconceptions

  • "GraphRAG replaces vector RAG." The research says the opposite: semantic search wins on specific lookups. They answer different question shapes.
  • "A knowledge graph is more accurate." It is more structured. Accuracy still depends on an LLM having extracted entities and relationships correctly from your documents — and it will make mistakes, which is exactly why inspectability is useful.
  • "Graph retrieval is too expensive to consider." That was true of the original pregenerated approach. The deferred variant reports indexing at parity with vector RAG.
  • "You need a graph database." You need graph structure. Whether it lives in a dedicated graph store, a relational schema or a document store is an implementation choice, not a prerequisite.
  • "Better embeddings would fix the corpus-wide case." No embedding can retrieve a passage that does not exist. The problem is the operation, not the representation.

The Bottom Line

Vector RAG answers "where is this written down?" GraphRAG answers "what does all of this add up to?" Both are legitimate; only one of them is what most teams have actually built.

The decision is therefore not a technology preference. Look at the questions your users ask. If the answers exist in passages, similarity search is the right tool and a graph is expensive overhead. If the answers are distributed across the corpus — themes, patterns, relationships spanning documents — no amount of retrieval tuning will produce them, because retrieval is not the operation you need.

And the cost objection that made this an either/or has largely dissolved. With deferred indexing reported at vector-RAG cost, the sensible posture is to keep the cheap path for the cheap questions, add the expensive path for the questions that need it, and route between them.

Frequently Asked Questions

What is GraphRAG in one sentence?

It is a retrieval approach that has an LLM read your documents once to build a knowledge graph of entities and their relationships, pregenerates a summary for each cluster of related entities, and then answers a question by collecting a partial answer from every cluster summary and merging them. It was introduced by a Microsoft Research team in the 2024 paper "From Local to Global: A Graph RAG Approach to Query-Focused Summarization."

When does vector RAG genuinely beat GraphRAG?

On specific lookup queries — the kind where a passage in your corpus contains the answer. It is faster, dramatically cheaper to index, cheaper per query, and the research itself reports semantic search performing better on this class. If your users mostly ask "what does the policy say about X," you do not have a GraphRAG problem.

Isn't GraphRAG prohibitively expensive?

Full pregenerated GraphRAG has a high index cost, because an LLM must read every document and summarise every community it finds. That objection stalled a lot of projects. Microsoft's LazyGraphRAG defers the heavy analysis to query time and reports indexing costs identical to vector RAG — 0.1% of full GraphRAG — which makes trying it cheap. You then pay more per query instead.

What is a "sensemaking" or "global" question?

One whose answer is a property of the whole collection rather than of any passage in it: main themes, recurring patterns, how two things relate across many documents, what changed over a set of reports. The formal framing is query-focused summarisation. The tell is simple — if you cannot point to a paragraph that would answer it, retrieval alone won't.

Does GraphRAG help with multi-hop questions?

Yes, and this is one of its stronger practical arguments. A question requiring you to connect A to B and B to C fails under vector search unless one chunk happens to contain the whole chain. A graph stores those relationships as explicit edges, so the connection is traversable rather than something the retriever has to get lucky about.

Do I need a graph database to use it?

No. What you need is the graph structure — entities, edges and cluster summaries. Where you store it is an engineering decision, and plenty of implementations use ordinary relational or document stores. Microsoft's GraphRAG implementation is open source, which is the usual starting point for evaluating it against your own corpus.

How do I decide without building both?

Collect twenty real user questions and sort them into lookup versus corpus-wide. That single exercise resolves most cases in an afternoon. If the split is meaningful, prototype with the deferred approach — because indexing is at parity with vector RAG, the experiment costs little, and it tells you whether graph structure helps your data specifically rather than the paper's benchmark corpora.

Sources

Artificial Intelligence & LLMsAI Agents#rag#knowledge graphs#llms#vector database#generative ai
Share:
A glowing blue circuit-brain hologram labeled RAG — Retrieval, Augmented, Generation — ringed by icons for retrieve, augment, generate, knowledge base, and context-aware AI

AI & TechnologyGuide

What Is RAG (Retrieval-Augmented Generation)?

RAG lets an AI model look things up before it answers — grounding its response in real, current, trusted data. Here's how retrieval-augmented generation works, in plain English.

Jul 16, 202612 min