Vectorize
是什么
想象给每一张照片、每一句话、每一首歌都配上一组坐标,让相似的东西在地图上彼此靠近——这样"帮我找更多类似的"就只是"找出最近的点"。Vectorize 正是为此而生的存储,是 Cloudflare 的向量数据库。你存储 embedding(嵌入向量)——一组捕捉文本、图像或其他数据语义的数字——并查询与给定向量最相似的那些。它是语义搜索和 RAG(Retrieval-Augmented Generation,检索增强生成——把相关事实喂给 AI、让它据此引用)中的检索(查找)环节,可与 Workers AI 一起直接绑定到 Worker 中,而 Workers AI 可以生成这些 embedding。
优势
- 专为基于 embedding 的相似度搜索而打造,支持快速的最近邻查询。
- 直接绑定到 Workers;无需单独运行向量服务。
- 与 Workers AI 干净地配合,可在 Cloudflare 上搭建端到端的 RAG 流水线。
- 支持元数据过滤,便于限定结果范围。
- 无服务器且全球可用,随你的应用一同扩展。
取舍
- 它存储向量和元数据,而非你的源文档——后者应保存在 D1 或 R2 中。
- 在插入之前,你必须自己生成 embedding(例如通过 Workers AI)。
- 索引维度和距离度量在创建时固定——请谨慎选择。
- 它是专用存储,不是通用数据库。
何时使用
将 Vectorize 用于语义搜索、推荐、去重以及 RAG 的检索步骤——任何"找出与此最相似的内容"胜过精确关键词匹配的场景。
与 vibe coding 的契合度
Vectorize 让 agent 无需离开 Cloudflare 就能构建完整的 RAG 功能:Workers AI 生成 embedding,Vectorize 存储并搜索它们,D1 或 R2 保存原始内容。请提前告诉 agent 使用的 embedding 模型,因为索引维度必须与该模型的输出相匹配。下面的示例创建一个索引并绑定它。
# wrangler.toml
[[vectorize]]
binding = "VECTORIZE"
index_name = "docs-index"
# 维度必须与你的 embedding 模型输出相匹配
npx wrangler vectorize create docs-index --dimensions=768 --metric=cosine