DynamoDB 支持全文搜索吗?
不,原生不支持。DynamoDB 没有全文搜索:没有相关性排序,没有词干还原,也没有模糊匹配——内置的字符串工具是精确比较、排序键上的 begins_with 以及 contains 子串过滤。AWS 的答案是与 Amazon OpenSearch Service 的零 ETL 集成,它将表复制到一个搜索索引中,用于全文、向量和语义搜索。
原生能做什么
- 排序键上的
begins_with——在单个分区内进行高效的前缀匹配;分层排序键模型的支柱。 - 过滤表达式中的
contains——子串匹配,但过滤在读取_之后_运行,因此在 Scan 上你仍要为读取所检查的每个项目付费。何时可接受,参见过滤策略指南。
两者都不对结果排序、不容忍拼写错误,也不理解词边界——它们是字符串谓词,而非搜索。
AWS 原生的答案:到 OpenSearch 的零 ETL
用于 OpenSearch Ingestion 的 DynamoDB 插件将一张表同步到一个或多个 OpenSearch 索引:初始快照通过 DynamoDB 的 S3 导出加载(需要 PITR),随后 DynamoDB Streams 近乎实时地复制变更。该管道不消耗你的表的任何读取或写入吞吐量,因此可以安全地紧邻生产流量运行——而且 AWS 声明该集成能对你的 DynamoDB 数据进行全文、向量和语义搜索。如果搜索是主要工作负载,DynamoDB vs Elasticsearch 直接比较了运营型数据库和搜索引擎这两种角色。
深入了解
如果你的"搜索"其实是一次已知的查找,那就改进模型——过滤策略和排序键策略指南展示了键能做什么。在表达式构建器中原型化 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 官方文档。