AWS于2026年8月5日宣布,Amazon DynamoDB中的向量搜索功能正式可用。该功能支持将向量嵌入与运营数据存储在一起,并直接在表内执行相似性搜索,无需将数据复制到独立的向量数据库。
该功能提供个位数毫秒级响应时间和超过99%的召回率,旨在扩展至任意规模,包括数万亿个向量。它还依托DynamoDB的无服务器架构,因此用户无需配置或修补服务器,也无需安装和管理软件。AWS表示,该服务不需要版本升级或维护窗口,并支持不间断维护。
降低AI应用架构的复杂性
过去,在使用DynamoDB的应用中引入向量搜索,通常需要将数据复制到专用向量存储中,然后创建用于同步两项服务的数据管道。据AWS称,这种方式会增加运营负担、数据传输和许可成本,同时还带来在扩展时保持低延迟且可预测的挑战。
将向量搜索集成到DynamoDB后,运营数据和嵌入可以共享同一无服务器架构以及按请求付费的定价模式。向量索引提供无限存储容量,并会随着数据增长进行横向扩展。
该功能面向代理记忆应用、检索增强生成、推荐引擎、个性化体验、异常检测,以及其他需要语义检索的应用场景。
向量搜索的工作方式
该功能会在存储向量嵌入的属性上创建一种新型索引。用户可以使用所选模型生成这些嵌入,例如Amazon Bedrock Titan Text Embeddings、Cohere Embed或OpenAI文本嵌入模型,然后通过标准的PutItem调用,将其作为十进制数字列表存储。
随后,用户创建向量索引,并指定维度数量、距离函数,以及搜索期间可用于筛选结果的非向量属性。SearchVectors接口接收查询向量和所需结果数量(最多100条),以及可选的筛选条件,然后按相似度返回结果。
该功能支持最多4096个维度,以及欧几里得、Cosine和Dot product距离函数,同时支持内置筛选。AWS建议使距离函数与训练嵌入模型时使用的函数保持一致,以获得最佳准确率。
体育用品商店示例
AWS指南演示了如何向现有产品目录表添加向量搜索。在该示例中,产品描述的嵌入存储在名为descriptionEmbedding的新属性中,使用DynamoDB现有的List类型,无需新的数据类型或架构变更。
创建名为ProductDescriptionIndex的索引后,可以使用marketplace作为分区键,将向量分配到各分区,并将搜索限制在特定市场内;还可以添加category作为筛选属性。筛选条件仅支持精确匹配,不支持BETWEEN或BEGINS_WITH等范围条件。
当搜索“夏季轻便跑鞋”等自然语言短语时,用户使用同一模型创建查询向量,然后指定索引、结果数量、市场值(例如US)以及所需类别。DynamoDB会在同一响应中返回相似度最高的五个产品及其运营属性,例如名称和价格。在Cosine和Euclidean函数中,数值越低表示相似度越高;而使用Dot product时,数值越高表示相似度越高。
可用性
DynamoDB中的向量搜索现已在所有AWS商业区域正式推出,包括AWS GovCloud (US)区域。AWS建议用户访问“按区域列出的AWS功能”页面,了解区域可用性和未来路线图,并访问Amazon DynamoDB定价页面获取成本详情。