GEO

向量数据库

向量数据库是一种专门用来存储嵌入向量、并能快速检索出语义上最相似向量的数据库。如今,它已成为 RAG 流水线、语义搜索、推荐系统以及 AI 智能体长期记忆的核心基础设施。

向量数据库是一种专门用来存储嵌入向量、并能快速检索出语义上最相似向量的数据库。如今,它已成为 RAG 流水线、语义搜索、推荐系统以及 AI 智能体长期记忆的核心基础设施。

为什么重要

传统 SQL 数据库针对精确的关键词匹配做了优化,但 LLM 时代的搜索建立在语义相似度之上。在数百万个向量(每个 1000 多个维度)中,于几毫秒内找出 top-k 个最近邻,用通用数据库基本是不可能完成的。向量数据库通过近似最近邻(ANN)算法解决了这个问题,从而实现为 LLM 响应提供依据的实时检索。

工作原理

  1. 生成嵌入:OpenAI、Cohere 等模型把文本或图像转换成向量。
  2. 建立索引:HNSW、IVF 或 PQ 等 ANN 算法对向量进行结构化组织,以实现快速检索。
  3. 查询嵌入:用同一个模型把用户查询向量化。
  4. 相似度搜索:通过余弦相似度、内积或欧氏距离返回 top-k 个向量。
  5. 关联元数据:把附加在每个向量上的原始文本和元数据返回,并注入 LLM 的上下文。

主流方案

专用向量数据库

  • Pinecone:托管服务,API 简单,上手快
  • Weaviate:开源,混合(向量 + 关键词)搜索能力强
  • Qdrant:基于 Rust,性能高,资源占用低
  • Milvus:可大规模分布式向量搜索

为现有数据库提供的向量扩展

  • pgvector:PostgreSQL 扩展,把向量与 SQL 数据放在一起
  • Elasticsearch:将关键词搜索与向量搜索结合
  • Redis:内存级向量搜索

常见模式:先用 pgvector 起步,等流量和规模需要时再迁移到专用数据库。

选型标准

数据规模:在 100 万个向量以下,pgvector 就够用。超过 1 亿个向量时,专用数据库不可或缺。

混合搜索:如果你需要把向量 + 关键词 + 过滤一起使用,Weaviate 或 Elasticsearch 表现突出。

延迟:面向用户的应用通常以 p99 ≤ 100ms 为目标。在这一区间内,HNSW 索引最为可靠。

运维负担:Pinecone 等托管服务成本更高,但几乎免除了所有基础设施工作。开源方案(Qdrant、Milvus)则正好相反。

元数据过滤:如果经常需要按类别、日期或用户 ID 进行预过滤,就选择一种能高效地把它与向量搜索结合起来的方案。

对 GEO 的影响

博客运营者很少会自建向量数据库,但把内容写得能在 LLM 和 AI 搜索的向量数据库中恰当地落地,仍然很重要。清晰的标题、自成一体的段落,以及具体的数字和来源,都能提升嵌入质量,这意味着当向量数据库选择引用什么内容时,你能获得更高的相似度分数。

Sources: