Amazon Bedrock Knowledge Bases for the AIP-C01 Exam: Chunking and Embeddings
Many Domain 1 questions describe a RAG application that returns incomplete or irrelevant context. The cause is often how documents were split or embedded. These notes collect what the Amazon Bedrock documentation says about each chunking strategy and about embedding output.
At a glance
Chunking strategies in Amazon Bedrock Knowledge Bases
Strategy
How it works
Default
Chunks of about 300 tokens that respect sentence boundaries.
Fixed-size
You set the maximum tokens per chunk and the overlap percentage.
Hierarchical
Child chunks are searched, then replaced by their larger parent chunk at retrieval.
Semantic
Splits where meaning changes; uses a buffer size and a breakpoint percentile threshold and a foundation model.
No chunking
Each document is one chunk; no page numbers in citations.
Fixed-size chunking sets a maximum token count and an overlap percentage; default chunking makes chunks of about 300 tokens that respect sentence boundaries. Hierarchical and semantic chunking exist for content whose context spreads across paragraphs.
Hierarchical chunking searches small child chunks but hands the model their larger parent chunks, so it gets more context. Because several children can share one parent, a query can return fewer results than numberOfResults.
Semantic chunking splits text where the meaning changes, so related sentences stay together. You set a buffer size (a buffer of 1 embeds 3 sentences together) and a breakpoint percentile threshold (higher = fewer, larger chunks). It uses a foundation model, so it adds cost.
With no chunking each document is a single chunk, so you must split the files yourself first. You also lose page numbers in citations and cannot filter by the x-amz-bedrock-kb-document-page-number metadata field.
Titan Text Embeddings V2 lets you choose 1024 (default), 512 or 256 output dimensions and returns float, binary or both. Smaller vectors cost less to store and search; normalize defaults to true.
Binary vectors use 1 bit per dimension versus 32 bits for float32, so they are cheaper to store but less precise. If you choose a binary embedding model, the vector store you pick must also support binary vectors.
numberOfResults is a maximum. With hierarchical chunking it counts child chunks, and children that share a parent are replaced by that one parent, so you can get fewer results. Tables and figures can also return page-level context that merges results.