Writing

GraphRAG solves a different problem than RAG

Vector RAG retrieves by similarity. GraphRAG retrieves by relationship. They answer different questions, and applying GraphRAG as a 'better RAG' is the wrong framing.

People talk about GraphRAG as a better RAG: more powerful, more sophisticated, better at finding things. The upgrade story. That's a category error, not a marketing nitpick.

That framing is wrong in a way that leads teams to apply the wrong tool to the wrong problem, then wonder why the expensive thing didn't perform better than the simple thing.

GraphRAG is not a better retrieval method. It answers a different question entirely.

Two questions that look alike

Vector RAG asks: what passages are similar in meaning to this query?

GraphRAG asks: what entities are connected to this query, and what do their relationships reveal?

These sound like variations on a theme. They're not. Similarity search operates on the content of text. Graph traversal operates on the structure of relationships between things. When the answer to your question depends on content, like "what does this document say about X?", vector search is the right tool. When the answer depends on structure, like "who knows whom, what happened after what, which regulation applies to which entity", graph traversal is the right tool.

The mistake is treating GraphRAG as a universal improvement when it's actually a specialization.

Retrieval quality by query typeVector RAG wins on content-based queries. GraphRAG wins on relational, multi-hop, and overview queries. Neither dominates the other.
Loading chart...

Why vector search fails on relational queries

Consider a corpus of organizational documents. Alice is mentioned in a project proposal. Alice's team is mentioned in a budget document. That team's budget was cut in a board memo. The question "how did the budget decision affect Alice's project?" spans three documents. No single chunk contains the answer.

A vector index will retrieve chunks that mention Alice, or chunks about budgets, or chunks about project proposals, but it cannot tell you how these things connect. The answer requires traversing a chain of relationships: person → team → budget event → project impact. That chain is not in the text. It is in the structure of relationships between pieces of text.

This is precisely what a knowledge graph is for. Entities are nodes. Relationships are edges. When you index your corpus as a graph, you are not just storing what the documents say; you are storing the structure that connects what they say. A query can then traverse that structure to find answers that no individual chunk contains.

"How did the budget decision affect Alice's project?"

Same four documents, same query. Toggle the retrieval mode and watch what gets found.

AliceProject proposalAlice's teamBudget memo
Vector search matches "Alice" and "budget" independently by content similarity — two disconnected hits, no relationship between them. The system can't tell you how one affects the other.

Microsoft's own evaluation of GraphRAG found this is not a marginal gain on these query types: using community summaries for global, sensemaking-style questions won 70-80% of head-to-head comparisons against baseline vector RAG on comprehensiveness and diversity of the generated answer.

The cost you need to justify

GraphRAG is not free. Entity extraction at index time costs 10 to 100 times more than standard chunking because each document requires LLM calls to identify and resolve entities. For a large corpus, this is a significant upfront investment. The ongoing maintenance burden is higher too: when a document changes, you must update not just the chunk but every entity and relationship it contains.

GraphRAG vs vector RAG: when to choose whichThe decision is about your query distribution, not about which technology is better.
SignalChoose vector RAGChoose GraphRAG
Query typeMostly content lookup, paraphrase matchingMulti-hop relational, entity-centric, global summaries
Corpus structureLoosely connected documents, no shared entitiesRich entity network (people, orgs, events, regulations)
Corpus sizeAny size — scales wellJustify index cost against query volume
Update frequencyFrequent updates — reindex is cheapInfrequent updates — entity graph maintenance is expensive
Explainability needMedium — source chunks are traceableHigh — graph path is a reasoning trace

The architecture that wins most often

The answer for complex knowledge systems is almost never pure vector or pure graph. It is hybrid: vector search for content recall, graph traversal for relational reasoning, merged results before generation.

Run the query through both paths. Vector search returns the most semantically similar chunks. Graph traversal returns the entities and their linked context. Merge with Reciprocal Rank Fusion. Feed the combined evidence to the generator.

This architecture covers most query types without paying the full graph cost on every request; the graph path is triggered only when the query has relational structure. A question like "who wrote the RFC?" can be answered by vector search alone. A question like "how do the people who wrote the RFC relate to the team that rejected it?" needs the graph.

The principle is simple: use the right retrieval primitive for the structure of the question. Neither technology is winning. Both are tools.

That exact misconception is common enough to be a recurring correction online:

Tech with Mak on why GraphRAG isn't just swapping a vector DB for a graph DB.

References: GraphRAG (Edge et al., Microsoft, 2024), Microsoft Research: GraphRAG results, Microsoft GraphRAG