技术

Vector Database

一种把文本存储为数值向量的数据库,使你能够按含义而非精确关键词来搜索,它是大多数 RAG 系统所运行的检索引擎。

最近审阅: 2026-06-02 审阅人Kevin Riedl wiki ↗

向量数据库存储 Embedding:文本(或图像、或音频)的数值表示,其中相似的含义被映射到空间中相近的点。你不是去匹配精确关键词,而是用同样的方式嵌入用户的查询,并向数据库索取最接近的向量。这就是相似性搜索,正是它让系统在文档实际写着"订阅终止流程"时仍能找到"我怎么取消我的套餐"。

在 RAG 流水线中,这是检索层。你的答案质量在很大程度上取决于它:好的 Embedding 和好的搜索会返回正确的文本块喂给模型,差的则喂进垃圾,而模型会自信地把这些垃圾总结出来。这就是为什么决定 RAG 项目成败的通常是检索,而不是模型。

这里是供应商会跳过的部分:你常常并不需要专用的向量数据库。如果你的语料库很小(数千而非数百万个文本块),在你本就运行的 Postgres 上加一个向量扩展(pgvector)更简单、更便宜,也少运维一个系统。如果你的搜索主要由关键词驱动,朴素的全文搜索甚至可能直接胜过向量搜索。只有当规模、延迟或高吞吐量下的混合搜索确实证明其合理时,才动用专用向量数据库,而不是因为它出现在架构图上。

我们在 人工智能 下有意选择足够枯燥的方案,因为每多一个系统,就多一件要在凌晨三点保持运转的事情。

// FAQ

常见问题

常见问题

用来按含义而非精确关键词搜索。文本被存储为 Embedding(数值向量),查询返回最接近的匹配。它是大多数 RAG 系统所依赖的检索层。
通常不需要。对于小型语料库,像 pgvector 这样的 Postgres 向量扩展更简单也更便宜。对于关键词密集的搜索,全文搜索可能取胜。只有当规模、延迟或混合搜索证明合理时,才动用专用向量数据库。
文本的数值表示,其中相似的含义落在向量空间中相近的点上。它们让系统即使在措辞完全不同的情况下,也能把查询与相关内容匹配起来。