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 在探索時過濾即時的表格資料。

參考資料

最後驗證於 2026-07-13,對照上方連結的官方 AWS 文件。

不必透過主控台就能操作 DynamoDB

DynoTable 是一款快速的 DynamoDB 桌面用戶端 — 瀏覽表格、執行 SQL 風格的查詢,並在本機編輯項目。