Skip to content
Sandeep Kumar ChaudharySandeep
Back to BlogRAG & Vector Search

How GraphRAG Works Under the Hood

By Sandeep Kumar ChaudharyJul 26, 20266 min read
How GraphRAG Works Under the Hood — RAG & Vector Search guide by Sandeep Kumar Chaudhary, full stack developer

TL;DR

Here is a clear, practical guide to under the hood: the fundamentals, the best practices that actually move the needle, common mistakes to avoid, concrete data points, and a short FAQ. Everything is structured so you can apply it to real projects today.

Key takeaways

  • Reach for GraphRAG when questions require connecting facts across many documents; keep plain vector RAG for direct lookups where it is cheaper and simpler.
  • Never embed a query with one model and your corpus with another; the query and document vectors must live in the same embedding space.
  • RAG is retrieval plus generation: fix the retrieval half first, because a great model cannot answer from context it never received.
  • Combine dense semantic search with sparse keyword search (BM25) using hybrid retrieval, because each catches failures the other misses.
  • Chunk on semantic and structural boundaries, not arbitrary character counts, and store metadata so you can filter and cite precisely.

This is a practical, up-to-date guide to Under the Hood — what it is, why it matters in 2026, and how to apply it in real projects. It is written for developers and founders who want clear answers and proven best practices, not filler.

Whether you're just starting out or leveling up, treat this as a working reference you can return to. Every section is built to be skimmed, applied, and shared.

Evaluating retrieval and generation

You cannot improve a RAG system you cannot measure, and the two halves must be measured separately because a good answer requires both good retrieval and faithful generation. Retrieval quality is assessed with information-retrieval metrics such as recall at k, precision, and mean reciprocal rank against a labeled set of questions with known relevant chunks. Generation quality is judged on faithfulness, whether the answer is supported by the retrieved context, and on answer relevance, increasingly with frameworks like RAGAS or an LLM-as-judge approach. The essential discipline is to build a representative evaluation set from real questions early, so that every change to chunking, embeddings, or reranking can be validated with numbers rather than vibes.

Embeddings: turning text into vectors

Embeddings are dense numeric vectors that place semantically similar text close together in a high-dimensional space, so that cosine similarity or dot product approximates meaning. Sentence-level models such as the Sentence-Transformers (SBERT) family, OpenAI's text-embedding-3 series, Cohere Embed, and open models like BGE and E5 are trained specifically for retrieval rather than for generation. Choosing a model means balancing dimensionality, cost, latency, and how well it handles your domain and languages; the public MTEB leaderboard is a useful starting point but not a substitute for testing on your own data. A critical rule is consistency: queries and documents must be embedded by the same model, and some models expect asymmetric prompts that distinguish a short query from a longer passage.

Chunking: how you split documents matters

Chunking decides what unit of text gets embedded and retrieved, and it quietly determines the ceiling on retrieval quality. Chunks that are too large dilute the embedding with unrelated content and waste context window, while chunks that are too small lose the surrounding meaning needed to answer a question. Better strategies split on natural boundaries such as headings, paragraphs, sentences, or code blocks rather than fixed character counts, and often add modest overlap so ideas that straddle a boundary are not severed. Useful refinements include attaching metadata like document title and section, storing a small chunk for matching but returning a larger parent chunk for context, and keeping tables or code intact rather than shredding them mid-structure.

Reranking for precision at the top

Retrieval typically returns a few dozen plausible candidates, but the generator can only use a handful, so the ordering of those top results is what actually reaches the model. A reranker is a cross-encoder that reads the query and each candidate passage together and scores their relevance directly, which is far more accurate than the independent vector similarity used during first-stage retrieval. Because cross-encoders are too slow to run over an entire corpus, they are applied only to the shortlist, giving a strong precision boost for modest added latency. Hosted rerankers such as Cohere Rerank and open cross-encoder models from the Sentence-Transformers ecosystem make this one of the easiest high-impact upgrades to a RAG stack.

Common failure modes and pitfalls

The most common RAG failures live in retrieval, not the model: if the right chunk is never fetched, no amount of prompt engineering will recover the answer. Frequent culprits include mismatched embedding models for query and corpus, chunking that fragments the answer, missing or wrong metadata filters, and stale indexes that lag behind the source documents. A subtler risk is retrieval poisoning, where malicious or low-quality content in the knowledge base is retrieved and then repeated by the model, since RAG grounds but does not verify. RAG also reduces but does not eliminate hallucination, so answers should be constrained to cite sources and to decline gracefully when the retrieved context does not actually contain the answer.

What retrieval-augmented generation actually is

Retrieval-augmented generation, or RAG, is a pattern that grounds a large language model in external data by fetching relevant text at query time and inserting it into the prompt. Instead of relying only on the frozen knowledge baked into the model's weights, the system retrieves passages from a knowledge base and asks the model to answer using that supplied context. The approach was formalized in a 2020 paper from Facebook AI Research and has since become the standard way to make LLMs answer questions about private documents, recent events, or specialized domains. Its appeal is practical: you can update the knowledge base without retraining the model, and you can point to the retrieved passages as evidence for an answer.

Under the Hood: Key Facts and Data

According to recent industry research and the official documentation linked below:

  • RAG entered the mainstream after the 2020 Facebook AI Research paper "Retrieval-Augmented Generation for Knowledge-Intensive NLP Tasks", and by 2025 it had become the default architecture for grounding LLMs in private or up-to-date data.
  • The MTEB (Massive Text Embedding Benchmark) leaderboard on Hugging Face has become the de facto public scoreboard for comparing embedding models across dozens of retrieval, classification and clustering tasks.
  • Modern embedding models typically produce vectors of a few hundred to a few thousand dimensions; OpenAI's text-embedding-3-large outputs 3072 dimensions, while many open models such as the BGE and E5 families sit in the 384 to 1024 range.

Quick-Reference Summary

A map of what this guide covers:

TopicWhat you'll learn
Evaluating retrieval and generationYou cannot improve a RAG system you cannot measure
Embeddings: turning text into vectorsEmbeddings are dense numeric vectors that place semantically similar text close together in a high-dimensional space
Chunking: how you split documents mattersChunking decides what unit of text gets embedded and retrieved
Reranking for precision at the topRetrieval typically returns a few dozen plausible candidates
Common failure modes and pitfallsThe most common RAG failures live in retrieval
What retrieval-augmented generation actually isRetrieval-augmented generation, or RAG, is a pattern that grounds a large language model in external data by fetching

How to Get Started with Under the Hood

A simple path that works:

  1. Learn the fundamentals of Under the Hood from primary sources, not just tutorials.
  2. Build one small, real project end to end.
  3. Get feedback, refactor, and add tests.
  4. Ship it publicly and document what you learned.
  5. Repeat with a slightly harder project each time.

Build It with a World-Class Full Stack Developer

Sandeep Kumar Chaudhary is a full stack world-class developer. If you want to turn this into a real, production-ready product, get in touch — message directly on WhatsApp at +9779802348957 for a fast, no-pressure consult.

You can also explore the projects already shipped to thousands of users, or start a conversation here.

Final Thoughts

Reach for GraphRAG when questions require connecting facts across many documents; keep plain vector RAG for direct lookups where it is cheaper and simpler. The developers and teams who win in 2026 pair strong fundamentals with consistent shipping. Start small, stay curious, build in public, and revisit this guide as your skills grow.

Sources and Further Reading

#retrieval-augmented generation#rag#vector database#embeddings

Frequently Asked Questions

What is under the hood?

Embeddings are dense numeric vectors that place semantically similar text close together in a high-dimensional space, so that cosine similarity or dot product approximates meaning. Sentence-level models such as the Sentence-Transformers (SBERT) family, OpenAI's text-embedding-3 series, Cohere Embed, and open models like BGE and E5 are trained specifically for retrieval rather than for generation. This guide covers under the hood end to end — core concepts, best practices, concrete data, and a step-by-step approach you can apply right away.

How should I chunk my documents?

Split on natural boundaries such as headings, paragraphs, sentences, or code blocks rather than fixed character counts, and add a little overlap so ideas spanning a boundary are not cut in half. Attach metadata like document title and section to each chunk so you can filter and cite precisely. A useful pattern is to embed and match on small chunks but return a larger parent chunk to the model for context, and to keep tables and code intact rather than shredding them.

Which embedding model should I choose?

There is no single best model; the right choice balances retrieval quality on your data, dimensionality, cost, latency, and language coverage. The public MTEB leaderboard is a good starting point for comparing options like OpenAI text-embedding-3, Cohere Embed, and open models such as BGE and E5, but you should validate the shortlist on your own questions. The most important rule is to embed your queries and your documents with the same model so their vectors share one space.

Do I need a dedicated vector database, or can I use PostgreSQL?

For most projects you can and should start with PostgreSQL plus the pgvector extension, which keeps your vectors next to your relational data and transactions. A dedicated vector database like Pinecone, Qdrant, Weaviate, or Milvus becomes worthwhile when you outgrow that setup, typically at large scale, when you need very low latency, or when you require advanced filtering and hybrid search out of the box. Choosing a specialized engine early often adds operational complexity without solving your real retrieval problems.

Does RAG eliminate hallucinations?

No. RAG reduces hallucination by grounding the model in retrieved evidence, but the model can still misread the context, blend it with its own priors, or answer confidently when the retrieved passages do not actually contain the answer. It also does not verify the retrieved content, so poor or malicious data in the knowledge base can be repeated. To limit this, constrain the model to cite sources and to decline gracefully when the context is insufficient, and keep evaluating faithfulness.

Sandeep Kumar Chaudhary

Sandeep Kumar Chaudhary

Full Stack Software Developer· Nepal's SEO, AEO, GEO & AIO expert and share-market educator. More about me