检索增强生成系列(六):向量数据库——存储与检索基础设施

发布日期:2026-05-04 10:34:30   浏览量 :0
发布日期:2026-05-04 10:34:30  
0

2026西湖龙井茶官网DTC发售:茶农直供,政府溯源防伪到农户家 

为什么我们需要专用的向量数据库?

在前五篇文章中,我们弄清楚了如何对文档进行分块并生成嵌入向量。现在,这些向量存储在哪里,以及如何高效地检索它们?

你可能会想:“我不能直接把向量存储在雷迪斯(Redis)或波斯特格雷SQL(PostgreSQL)中吗?”

不能 — 传统数据库是为精确查询设计的(例如,WHERE id = 123),而向量检索是近似最近邻(ANN)搜索:给定一个查询向量,在数亿个文档向量中快速找到最相似的 Top-K 个向量。传统数据库索引(B树、哈希表)在这种“相似性查询”面前无能为力。

示例:

  • 传统查询:查找 id=42 的用户 → O(1) 或 O(log n)
  • 向量查询:查找与用户 A 最相似的 10 个人 → 需要与所有向量进行比较,暴力破解的 O(n) 太慢

向量数据库使用专用的 ANN 索引(如 HNSW、IVF 等),将 O(n) 降低到 O(log n),在毫秒级完成数十亿向量的相似性搜索。

向量数据库的三大核心能力

1. 向量存储

存储海量向量(数百万到数十亿),每个向量都附带原始文本和元数据。支持增量写入和删除。

2. ANN 近似最近邻搜索

核心算法:

算法 原理 优点 缺点
HNSW 分层可导航小世界图,多层结构,从粗到细进行搜索 速度快、精度高、支持动态更新 内存占用较高
IVF 倒排文件,将向量空间划分为簇,先找到最近的簇再搜索 节省内存,适合静态数据 添加/删除向量需要重建索引
Flat 暴力全量比较 100% 准确 极慢,仅适用于小型数据集

建议:开发阶段使用 Flat(简单),生产环境使用 HNSW(性能最佳)。

3. 元数据过滤

这是区分向量数据库与纯向量库(如 FAISS)的关键能力。你可以同时做两件事:

  • 使用向量相似性查找语义相关的内容
  • 应用元数据条件进行精确过滤(例如,time > 2024-01-01 AND category = "technical"
# 示例:仅检索 2024 年之后的技术文档
results = vectorstore.similarity_search(
    query="微服务监控",
    k=5,
    filter={
        "category": "technical",
        "yea

免责声明:本文内容来自互联网,该文观点不代表本站观点。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,请到页面底部单击反馈,一经查实,本站将立刻删除。

关于我们
热门推荐
合作伙伴
免责声明:本站部分资讯来源于网络,如有侵权请及时联系客服,我们将尽快处理
支持 反馈 订阅 数据
回到顶部