Does DynamoDB support full-text search?
No, not natively. DynamoDB has no full-text search: no relevance ranking, no stemming, and no fuzzy matching — the built-in string tools are exact comparisons, begins_with on sort keys, and contains substring filters. AWS's answer is the zero-ETL integration with Amazon OpenSearch Service, which replicates a table into a search index for full-text, vector, and semantic search.
What you can do natively
begins_withon a sort key — efficient prefix matching inside one partition; the backbone of hierarchical sort-key models.containsin a filter expression — substring matching, but filters run after the read, so on a Scan you still pay to read every item examined. See the filtering strategies guide for when this is acceptable.
Neither ranks results, tolerates typos, or understands word boundaries — they are string predicates, not search.
The AWS-native answer: zero-ETL to OpenSearch
The DynamoDB plugin for OpenSearch Ingestion syncs a table into one or more OpenSearch indexes: an initial snapshot loads via DynamoDB's S3 export (PITR required), then DynamoDB Streams replicates changes in near real time. The pipeline consumes none of your table's read or write throughput, so it's safe next to production traffic — and AWS states the integration enables full-text, vector, and semantic search over your DynamoDB data. If search is the primary workload, DynamoDB vs Elasticsearch compares the operational-database and search-engine roles directly.
Go deeper
If your "search" is really a known lookup, fix the model instead — the filtering strategies and sort key strategies guides show what keys can do. Prototype begins_with/contains conditions in the expression builder, and download DynoTable to filter live table data as you explore.
References
- DynamoDB zero-ETL integration with Amazon OpenSearch Service — Amazon DynamoDB Developer Guide
- What is Amazon DynamoDB? — Amazon DynamoDB Developer Guide
- Comparison operator and function reference — Amazon DynamoDB Developer Guide
Last verified 2026-07-13 against the official AWS documentation linked above.