Overview
Fixed-size, semantic, and recursive chunking — and how each shapes what your retriever can ever find.
Why it matters
Before a document can be embedded and searched, it has to be cut into pieces — and that single decision quietly caps the ceiling of your entire RAG system. A chunk is the atomic unit of retrieval: whatever answer isn't fully contained inside one chunk simply cannot be retrieved, no matter how good your embedding model or LLM is downstream.
Three common strategies trade off differently:
- Fixed-size (e.g. 500 tokens, no overlap) is cheap and predictable, but it slices sentences and even tables in half with no regard for meaning — a policy clause can end up split across two chunks, so neither chunk alone answers the question.
- Recursive chunking tries fixed-size splits first, then backs off to natural separators (paragraph, then sentence, then word) so it rarely cuts mid-sentence, while still keeping chunks roughly uniform in size for the embedding model.
- Semantic chunking splits on actual topic shifts (headings, paragraph boundaries, or embedding-similarity drops between sentences), so each chunk is a coherent 'unit of meaning' rather than an arbitrary character count — at the cost of variable, sometimes unpredictable chunk sizes.
A useful rule of thumb: start with recursive chunking with ~10-15% overlap (so context isn't lost at the seams), and only move to true semantic chunking once you can measure that boundary errors are actually hurting recall.
