DynamoDB 支援全文搜尋嗎?
原生不支援。DynamoDB 沒有全文搜尋:沒有相關性排序、沒有詞幹處理,也沒有模糊比對 — 內建的字串工具是精確比較、對 sort key 的 begins_with,以及 contains 子字串過濾。AWS 的解答是與 Amazon OpenSearch Service 的 zero-ETL 整合,它將表格複製到搜尋索引中,以進行全文、向量與語意搜尋。
你能原生做到什麼
- 對 sort key 的
begins_with— 在單一 partition 內進行高效的前綴比對;階層式 sort-key 模型的支柱。 - filter expression 中的
contains— 子字串比對,但過濾在讀取_之後_執行,因此在 Scan 上你仍需為讀取每個被檢視的項目付費。何時可接受,請見過濾策略指南。
這兩者都不會為結果排序、容忍拼字錯誤或理解字詞邊界 — 它們是字串述詞,而非搜尋。
AWS 原生的解答:zero-ETL 到 OpenSearch
用於 OpenSearch Ingestion 的 DynamoDB 外掛程式會將表格同步到一或多個 OpenSearch 索引中:初始快照透過 DynamoDB 的 S3 匯出載入(需要 PITR),接著 DynamoDB Streams 以近乎即時的方式複製變更。此管線不消耗你表格的任何讀取或寫入輸送量,因此在正式流量旁使用是安全的 — 且 AWS 表示此整合可對你的 DynamoDB 資料進行全文、向量與語意搜尋。若搜尋是主要工作負載,DynamoDB vs Elasticsearch 會直接比較營運資料庫與搜尋引擎的角色。
深入了解
若你的「搜尋」其實是已知的查找,那就改正模型 — 過濾策略與 sort key 策略指南會展示鍵能做到什麼。在運算式建構器中製作 begins_with/contains 條件的原型,並下載 DynoTable 在探索時過濾即時的表格資料。
參考資料
- 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
最後驗證於 2026-07-13,對照上方連結的官方 AWS 文件。