The most basic strategy: treat the entire document as a single chunk. No splitting, no overlap. The whole text goes into the vector index as one unit.
It sounds too simple to be useful — and for most RAG use cases it is. But understanding it is important because it sets the baseline. Every other chunking technique is a trade-off against this one.
- Document loaded as-is
- Entire text stored as a single node/chunk
- That one chunk is embedded and indexed
- Any query retrieves the whole document
- Very short documents (under 500 tokens) where splitting adds no value
- You want to understand what your document actually contains before deciding a chunking strategy
- Testing — baseline to compare chunk quality against
- Documents longer than ~1000 tokens — LLMs hit context limits and accuracy drops
- Multiple topics in one document — retrieval can't differentiate
- Almost any real RAG use case
| Speed | Fastest — zero splitting overhead |
| Accuracy | Low on long documents — too much noise in context |
| Cost | High — large context = more tokens sent to LLM |
| Use case | Baseline only |
# No API key needed
python document_chunking.py