Every retrieval-augmented generation (RAG) pipeline works the same way underneath. Documents are cut into pieces, each piece is embedded into a vector, and a query is matched against those vectors to fetch the closest chunks. The generator never sees text that retrieval did not surface, so a fact that sat awkwardly inside a badly shaped chunk is effectively invisible. Weaviate puts it bluntly: when a RAG system performs poorly, the issue is often not the retriever but the chunks, because even a perfect retrieval system fails if it searches over poorly prepared data (Weaviate). Pinecone's guide adds that the size, content and semantic boundaries of each chunk shape retrieval performance, and that chunks which are too small or too large lead to imprecise results or missed relevant content (Pinecone).
There is a mechanical reason too. Embedding models have finite context windows, and text beyond the window is truncated or discarded before it becomes a vector, so an over-long chunk can silently lose the sentence that answers the question (Pinecone). A chunk must therefore do two things at once: fit through the embedding model, and carry enough standalone meaning to be understood alone. That yields a simple heuristic: if a chunk makes sense to a reader in isolation, it will usually make sense to the language model (Weaviate).
Chunking also governs downstream cost. The number of chunks sets index size and query latency, and the mix of topics inside each chunk determines how well an approximate nearest-neighbor index can separate good candidates. The index mechanics are documented elsewhere, including AWS's deep dive into IVFFlat and HNSW for pgvector (AWS) and a walkthrough of how IVFFlat clusters vectors to shrink search scope (TigerData). But the index can only rank the candidates it is given, so no index tuning rescues a corpus that was cut badly.



