<!-- mobian-agent-page publisher="dailydev" canonical="https://daily.dev/posts/three-kinds-of-rag-corpus-and-what-it-costs-to-build-for-the-wrong-one-hvbi0f3zn" -->

---
title: Three Kinds of RAG Corpus, and What It Costs to Build...
description: Enterprise document collections are not one kind of thing, and treating them all as a flat pile of chunks for similarity search is the reason RAG systems that...
canonical: https://daily.dev/posts/three-kinds-of-rag-corpus-and-what-it-costs-to-build-for-the-wrong-one-hvbi0f3zn
twitter:card: summary_large_image
twitter:site: @dailydotdev
og:type: website
og:site_name: daily.dev
og:title: Three Kinds of RAG Corpus, and What It Costs to Build for the Wrong One | daily.dev
og:description: Enterprise document collections are not one kind of thing, and treating them all as a flat pile of chunks for similarity search is the reason RAG systems that...
og:url: https://daily.dev/posts/three-kinds-of-rag-corpus-and-what-it-costs-to-build-for-the-wrong-one-hvbi0f3zn
og:image: https://api.daily.dev/og/posts/hVBI0f3ZN.png
og:image:alt: Three Kinds of RAG Corpus, and What It Costs to Build for the Wrong One
og:image:width: 1200
og:image:height: 630
og:locale: en
---

> ## Documentation Index
> Fetch the complete documentation index at: https://daily.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# Three Kinds of RAG Corpus, and What It Costs to Build for the Wrong One

**[Towards Data Science](https://daily.dev/sources/tds)** · 19 min read · 0 upvotes · 0 comments

## Summary

Enterprise document collections are not one kind of thing, and treating them all as a flat pile of chunks for similarity search is the reason RAG systems that work on a demo folder fail on a real shelf. Three diagnostic questions determine which of three shapes a collection has: an unrelated pile, a homogeneous typed corpus, or bundles of case files, each requiring a different architecture. A re-ranker does not fix a missing-candidate problem, and version/supersession relationships cut across all three shapes and need their own relations table and validity dates. A baseline test on five NIST PDFs shows four out of five document-level calls returning nothing usable, illustrating the wasted work of querying every document instead of narrowing the candidate set first.

## Full article

daily.dev links to this article rather than hosting it. Read it at the original source: <https://towardsdatascience.com/three-kinds-of-rag-corpus-and-what-it-costs-to-build-for-the-wrong-one>

## Questions this post answers

### Why does a re-ranker not fix RAG retrieval failures on a large document collection?

A re-ranker only re-orders candidates that the embedding step already retrieved; if the correct document never entered that candidate list because of vocabulary drift or scale, there is nothing for the re-ranker to promote. It pays off only after the candidate set already contains the right document, not as a substitute for narrowing that set correctly upstream with metadata filters.

_Anyone weighing re-rankers versus upstream filtering for retrieval can compare approaches through daily.dev._

### What are the three questions to determine which architecture a document collection needs for RAG?

Ask whether documents reference each other (like an amendment naming its master), whether a business user can quickly name a shared field across all documents (like client or policy number), and whether documents arrive in bundles about one case (like a claim folder). The answers determine whether the collection is an unrelated pile, a homogeneous typed corpus, or case-file bundles, each needing a different retrieval design.

_daily.dev helps engineers scoping RAG architecture decisions surface this kind of practical framework._

### How much of a five-PDF RAG baseline test returned no usable answer when querying every document with the same question?

Four out of five document-level calls returned nothing usable when asking about the Profile concept from the NIST Cybersecurity Framework across five public NIST PDFs. Two returned empty strings, one returned the literal string NA, and one returned a bare slash that a naive non-empty check incorrectly treated as a valid answer, taking 14.3 seconds total for the five documents.

_daily.dev surfaces practical benchmarks like this for engineers evaluating RAG pipeline efficiency at scale._

## Similar posts on daily.dev

- [Multi-Document RAG: A Folder of Unrelated PDFs Is One Long Document with a Nested Outline](https://daily.dev/posts/multi-document-rag-a-folder-of-unrelated-pdfs-is-one-long-document-with-a-nested-outline-qzfyeax7n) · Towards Data Science · 1 upvotes · 0 comments
- [Why production RAG systems give confident, wrong answers at scale](https://daily.dev/posts/why-production-rag-systems-give-confident-wrong-answers-at-scale-7b6euvauc) · The New Stack · 0 upvotes · 0 comments
- [Enterprise Document Intelligence: A Series on Building RAG Brick by Brick, from Minimal to Corpus scale](https://daily.dev/posts/enterprise-document-intelligence-a-series-on-building-rag-brick-by-brick-from-minimal-to-corpus-sc-qyl6soyo4) · Towards Data Science · 0 upvotes · 0 comments
- [Building a Real-World RAG System: Lessons No One Tells You](https://daily.dev/posts/building-a-real-world-rag-system-lessons-no-one-tells-you-hk26kzjti) · Medium · 2 upvotes · 0 comments

---

Tags: [#llm](https://daily.dev/tags/llm), [#rag](https://daily.dev/tags/rag), [#vector-search](https://daily.dev/tags/vector-search)

[View this post on daily.dev](https://daily.dev/posts/three-kinds-of-rag-corpus-and-what-it-costs-to-build-for-the-wrong-one-hvbi0f3zn)

```json
{"@context":"https://schema.org","@graph":[{"@type":"Organization","@id":"https://daily.dev/#organization","name":"daily.dev","url":"https://daily.dev","logo":{"@type":"ImageObject","url":"https://daily.dev/apple-touch-icon.png","width":180,"height":180},"sameAs":["https://twitter.com/dailydotdev","https://github.com/dailydotdev","https://www.linkedin.com/company/daily-dev-ltd"]},{"@type":"WebSite","@id":"https://daily.dev/#website","url":"https://daily.dev","name":"daily.dev","publisher":{"@id":"https://daily.dev/#organization"},"potentialAction":{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https://daily.dev/search?q={search_term_string}"},"query-input":"required name=search_term_string"}}]}
{"@context":"https://schema.org","@type":"TechArticle","headline":"Three Kinds of RAG Corpus, and What It Costs to Build for the Wrong One","url":"https://daily.dev/posts/three-kinds-of-rag-corpus-and-what-it-costs-to-build-for-the-wrong-one-hvbi0f3zn","mainEntityOfPage":{"@type":"WebPage","@id":"https://daily.dev/posts/three-kinds-of-rag-corpus-and-what-it-costs-to-build-for-the-wrong-one-hvbi0f3zn"},"datePublished":"2026-08-20T16:01:25.430Z","dateModified":"2026-08-20T16:01:52.785Z","description":"Enterprise document collections are not one kind of thing, and treating them all as a flat pile of chunks for similarity search is the reason RAG systems that...","image":"https://media.daily.dev/image/upload/f_auto,q_auto/v1/posts/42bd0246f53caf3ad667c4cacc804704?_a=AQAEuop","thumbnailUrl":"https://media.daily.dev/image/upload/f_auto,q_auto/v1/posts/42bd0246f53caf3ad667c4cacc804704?_a=AQAEuop","isAccessibleForFree":true,"articleSection":"Towards Data Science","inLanguage":"en","publisher":{"@type":"Organization","name":"daily.dev","url":"https://daily.dev","logo":{"@type":"ImageObject","url":"https://daily.dev/apple-touch-icon.png","width":180,"height":180}},"author":{"@type":"Organization","name":"Towards Data Science","logo":"https://media.daily.dev/image/upload/t_logo,f_auto/v1/logos/tds","url":"https://daily.dev/sources/tds"},"commentCount":0,"discussionUrl":"https://daily.dev/posts/three-kinds-of-rag-corpus-and-what-it-costs-to-build-for-the-wrong-one-hvbi0f3zn","interactionStatistic":[{"@type":"InteractionCounter","interactionType":{"@type":"LikeAction"},"userInteractionCount":0},{"@type":"InteractionCounter","interactionType":{"@type":"CommentAction"},"userInteractionCount":0}],"keywords":"llm,rag,vector-search","timeRequired":"PT19M"}
{"@context":"https://schema.org","@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https://daily.dev"},{"@type":"ListItem","position":2,"name":"Towards Data Science","item":"https://daily.dev/sources/tds"},{"@type":"ListItem","position":3,"name":"Three Kinds of RAG Corpus, and What It Costs to Build for the Wrong One"}]}
{"@context":"https://schema.org","@type":"FAQPage","@id":"https://daily.dev/posts/three-kinds-of-rag-corpus-and-what-it-costs-to-build-for-the-wrong-one-hvbi0f3zn#faq","mainEntity":[{"@type":"Question","name":"Why does a re-ranker not fix RAG retrieval failures on a large document collection?","acceptedAnswer":{"@type":"Answer","text":"A re-ranker only re-orders candidates that the embedding step already retrieved; if the correct document never entered that candidate list because of vocabulary drift or scale, there is nothing for the re-ranker to promote. It pays off only after the candidate set already contains the right document, not as a substitute for narrowing that set correctly upstream with metadata filters. Anyone weighing re-rankers versus upstream filtering for retrieval can compare approaches through daily.dev."}},{"@type":"Question","name":"What are the three questions to determine which architecture a document collection needs for RAG?","acceptedAnswer":{"@type":"Answer","text":"Ask whether documents reference each other (like an amendment naming its master), whether a business user can quickly name a shared field across all documents (like client or policy number), and whether documents arrive in bundles about one case (like a claim folder). The answers determine whether the collection is an unrelated pile, a homogeneous typed corpus, or case-file bundles, each needing a different retrieval design. daily.dev helps engineers scoping RAG architecture decisions surface this kind of practical framework."}},{"@type":"Question","name":"How much of a five-PDF RAG baseline test returned no usable answer when querying every document with the same question?","acceptedAnswer":{"@type":"Answer","text":"Four out of five document-level calls returned nothing usable when asking about the Profile concept from the NIST Cybersecurity Framework across five public NIST PDFs. Two returned empty strings, one returned the literal string NA, and one returned a bare slash that a naive non-empty check incorrectly treated as a valid answer, taking 14.3 seconds total for the five documents. daily.dev surfaces practical benchmarks like this for engineers evaluating RAG pipeline efficiency at scale."}}]}
```

