news 2026/4/14 19:49:17

【词汇专栏】向量数据库:RAG的弹药库

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
【词汇专栏】向量数据库:RAG的弹药库

向量数据库:RAG的弹药库

一句话理解

向量数据库是AI时代的"图书馆索引系统"——不是按字母排序,而是按语义相似度组织,让AI能够快速找到"意思相近"的内容。2026年,向量数据库已从"可选项"变成RAG和Agent系统的"必选项"。


目录

  1. 什么是向量数据库
  2. 核心原理
  3. 主流产品对比
  4. 2026年最新动态
  5. 实战代码
  6. 选型指南
  7. 常见问题
  8. 延伸阅读
  9. 读者互动

1. 什么是向量数据库

1.1 定义

向量数据库(Vector Database)是一种专门存储和检索高维向量的数据库系统。

对比维度传统数据库向量数据库
查询语法SELECT * WHERE name = "AI"SELECT * WHERE similar TO "machine"
匹配方式精确匹配语义相似
示例name = “AI”AI ≈ 机器学习

1.2 为什么需要向量数据库

场景传统方案向量数据库
搜索"手机"只返回含"手机"的结果返回"iPhone"、"智能手机"等
语义理解关键词匹配理解意图
图片搜索文件名匹配视觉特征匹配
推荐系统规则匹配协同过滤

1.3 核心应用场景

向量数据库四大应用:

应用说明
RAG 检索增强生成结合知识库提供更准确的生成
语义搜索基于语义理解而非关键词匹配
Agent 记忆系统为Agent提供长期记忆能力
推荐系统个性化推荐和相似度匹配

2. 核心原理

2.1 向量化:把内容变成数字

嵌入(Embedding):将文本、图像等转换为向量

# 文本向量化示例fromsentence_transformersimportSentenceTransformer model=SentenceTransformer('all-MiniLM-L6-v2')# 单条文本text="人工智能是让机器具有人类智能的技术"vector=model.encode(text)print(f"向量维度:{len(vector)}")# 384维print(f"向量示例:{vector[:5]}...")# [-0.0231, 0.0542, ...]# 批量文本texts=["AI是什么","机器学习入门","深度学习教程"]vectors=model.encode(texts)print(f"向量矩阵:{vectors.shape}")# (3, 384)

2.2 相似度度量

度量方式公式适用场景
余弦相似度cos(θ) = A·B/(|A||B|)文本嵌入
欧氏距离√Σ(Aᵢ-Bᵢ)²图像向量
点积A·B归一化向量
指标说明
向量A[1, 1] → 向量方向45°
向量B[1, 0] → 向量方向0°
cos(θ)= 0.707 → 70.7%相似
结论更近的方向 = 更相似的语义

2.3 近似最近邻(ANN)索引

为什么需要ANN?

数据规模暴力搜索时间ANN搜索时间
1,0001ms<1ms
100,000100ms1ms
10,000,00010s10ms
100,000,000100s100ms

核心算法

算法特点代表库
HNSW图索引,速度快Milvus, Qdrant
IVF倒排索引Faiss
PQ量化压缩Faiss
DiskANN磁盘索引,大规模Microsoft
层级结构作用
Layer 2● ────── ●全局连接(快速定位入口点)
Layer 1● ──● ──● ──●局部连接(精细搜索)
Layer 0● ● ● ● ● ● ● ●底层数据点

搜索流程:从顶层快速定位 → 逐层下降 → 找到最近邻

2.4 索引类型对比

索引类型构建速度查询速度内存占用精度
FLAT-100%
IVF_FLAT95-99%
HNSW95-99%
PQ很快85-95%
HNSW_PQ很快很快85-95%

3. 主流产品对比

3.1 产品一览

产品类型GitHub特点
Milvus开源43K+ Stars功能最全,百亿级支持
Pinecone云服务-零运维,增长最快
Qdrant开源25K+ StarsRust实现,高性能
Weaviate开源22K+ Stars原生多模态支持
Chroma嵌入式15K+ Stars轻量级,嵌入式
FAISS库(Meta)30K+ Stars最成熟,研究级

3.2 详细对比表

产品类型GitHub特点适合场景
Milvus开源43K+功能最全,支持百亿级企业级大规模
Pinecone云服务-零运维,开箱即用快速上线
Qdrant开源25K+Rust实现,高性能实时检索
Weaviate开源22K+原生多模态多模态应用
Chroma嵌入式15K+轻量,易用原型/POC
FAISS30K+Facebook出品,最成熟研究/离线

3.3 选型建议

问题选项推荐方案
是否需要云服务?Yes→ Pinecone
No→ 继续判断
开源方案?No→ Chroma(轻量POC)
Yes→ 继续判断
数据规模多大?100M+→ Milvus(大规模)
其他→ Qdrant(中小规模)

4. 2026年最新动态

4.1 技术演进

时间进展意义
2025ChunkKV普及长文本检索效率提升
2025Hybrid Search成熟关键词+向量混合搜索
2026.1ThinKV发布极致显存优化
2026.2Graph-RAG整合图结构+向量成为标配
2026.4Agent Memory标配向量库成为Agent长期记忆

4.2 2026年新趋势

1. 混合检索成为标配

阶段关键词检索 (BM25)向量检索 (Embedding)RRF融合
用户查询“AI Agent的发展”同上-
权重AI×0.3, Agent×0.4Agent×0.8, 发展×0.7Reciprocal Rank Fusion
结果关键词匹配文档语义相似文档最终Top-K排序

2. 与Agent深度整合

# Agent记忆系统的向量数据库设计classAgentMemory:"""Agent的向量记忆库"""def__init__(self):# 短期记忆:对话历史self.short_term=MilvusCollection("short_term")# 长期记忆:重要经验self.long_term=MilvusCollection("long_term")# 知识库:结构化知识self.knowledge=MilvusCollection("knowledge")defremember(self,experience):"""记忆存储"""vector=embed(experience)self.long_term.insert(vector,{"content":experience})defrecall(self,query):"""记忆检索"""query_vector=embed(query)# 混合检索results=self.long_term.search(query_vector,limit=5,hybrid=True,# 启用混合检索rerank=True# 重排序)returnresults

5. 实战代码

5.1 Milvus实战

# Milvus向量数据库实战frompymilvusimportconnections,Collection,FieldSchema,CollectionSchema,DataTypefromsentence_transformersimportSentenceTransformer# 1. 连接Milvusconnections.connect("default",host="localhost",port="19530")# 2. 定义Schemafields=[FieldSchema(name="id",dtype=DataType.INT64,is_primary=True,auto_id=True),FieldSchema(name="embedding",dtype=DataType.FLOAT_VECTOR,dim=384),FieldSchema(name="text",dtype=DataType.VARCHAR,max_length=65535),FieldSchema(name="metadata",dtype=DataType.JSON),]schema=CollectionSchema(fields,description="RAG Knowledge Base")# 3. 创建Collectioncollection=Collection("rag_knowledge",schema)# 4. 创建索引index_params={"index_type":"HNSW","metric_type":"COSINE","params":{"M":16,"efConstruction":200}}collection.create_index("embedding",index_params)# 5. 插入数据model=SentenceTransformer('all-MiniLM-L6-v2')texts=["RAG是检索增强生成技术","向量数据库用于存储嵌入向量","Agent可以调用工具完成任务"]embeddings=model.encode(texts)entities=[embeddings.tolist(),texts,[{"source":"doc1"},{"source":"doc2"},{"source":"doc3"}]]collection.insert(entities)# 6. 检索collection.load()search_params={"metric_type":"COSINE","params":{"ef":100}}query="什么是RAG技术?"query_vector=model.encode([query])results=collection.search(query_vector.tolist(),"embedding",search_params,limit=3,output_fields=["text","metadata"])forhitinresults[0]:print(f"文本:{hit.entity.get('text')}")print(f"相似度:{hit.score}")

5.2 Qdrant实战

# Qdrant向量数据库实战fromqdrant_clientimportQdrantClient,modelsfromqdrant_client.modelsimportDistance,VectorParams,PointStruct# 1. 连接Qdrantclient=QdrantClient("localhost",port=6333)# 2. 创建Collectionclient.create_collection(collection_name="my_collection",vectors_config=VectorParams(size=768,distance=Distance.COSINE),)# 3. 插入向量client.upsert(collection_name="my_collection",points=[PointStruct(id=1,vector=[0.1]*768,payload={"text":"RAG技术简介","category":"AI"}),PointStruct(id=2,vector=[0.2]*768,payload={"text":"向量数据库原理","category":"Database"}),])# 4. 检索search_results=client.search(collection_name="my_collection",query_vector=[0.15]*768,limit=5,query_filter=models.Filter(must=[models.FieldCondition(key="category",match=models.MatchValue(value="AI"))]))

5.3 Chroma轻量级实战

# Chroma嵌入式向量数据库importchromadbfromchromadb.utilsimportembedding_functions# 1. 创建Chroma客户端client=chromadb.Client()# 2. 创建Collectioncollection=client.create_collection(name="my_knowledge",embedding_function=embedding_functions.DefaultEmbeddingFunction())# 3. 添加文档collection.add(documents=["RAG = Retrieval Augmented Generation","向量数据库用于存储嵌入向量","Agent可以通过RAG获取知识"],ids=["doc1","doc2","doc3"],metadatas=[{"source":"web"},{"source":"book"},{"source":"paper"}])# 4. 查询results=collection.query(query_texts=["什么是RAG?"],n_results=2)print(results)

6. 选型指南

6.1 场景选型

场景推荐选择原因
快速POCChroma零配置,易上手
中小规模生产Qdrant性能好,资源占用低
大规模企业级Milvus功能全,扩展性强
云服务/零运维Pinecone全托管,弹性扩展
研究/实验FAISS最成熟,灵活定制
多模态应用Weaviate原生支持图像等

6.2 成本对比

产品免费额度起步价/月按量付费
Pinecone1GB$70/100M向量
Milvus Cloud1M向量$25/100M向量
Qdrant Cloud1GB$25
Weaviate Cloud1GB$25
Chroma完全免费--
Milvus (自部署)免费基础设施成本-

7. 常见问题

Q1:向量数据库和普通数据库有什么区别?

:核心区别在于检索方式。

对比普通数据库向量数据库
检索方式精确匹配近似匹配
查询语言SQL向量相似度
索引B树、哈希HNSW、IVF
适用场景结构化数据非结构化数据

Q2:什么时候需要向量数据库?

:当需要"语义搜索"或"相似性检索"时。

  • ✅ 需要AI理解查询意图
  • ✅ 处理大量非结构化数据(文本、图片)
  • ✅ 构建RAG系统
  • ✅ Agent需要长期记忆
  • ❌ 简单关键词匹配就够用
  • ❌ 数据量很小(<1000条)

Q3:向量数据库的精度和性能如何平衡?

:根据业务需求选择。

需求推荐配置
高精度HNSW (M=32, ef=200)
均衡HNSW (M=16, ef=100)
高性能PQ + HNSW
内存受限DiskANN

Q4:向量数据库会取代传统数据库吗?

:不会,两者互补。

  • 向量数据库:处理非结构化数据的语义检索
  • 传统数据库:处理结构化数据的事务和精确查询
  • 最佳实践:混合架构,两者配合使用

8. 延伸阅读

相关词汇关联度推荐理由
W03 RAG⭐⭐⭐⭐向量数据库是RAG的核心组件
W12 嵌入⭐⭐⭐⭐嵌入是向量化的基础
W04 Agent⭐⭐⭐Agent Memory依赖向量库
W28 Agent记忆系统⭐⭐⭐⭐Agent Memory = 向量库 + 图库

🤔 批判性思考

1. 向量数据库是否过度工程化?

  • 很多场景真的需要专门的向量数据库吗?
  • PostgreSQL + pgvector是否已经足够?

2. 云服务vs自部署的权衡

  • Pinecone等云服务是否会导致vendor lock-in?
  • 自部署的运维成本是否被低估?

3. 数据安全问题

  • 向量数据库中存储的数据安全性如何保证?
  • 敏感信息向量化后是否仍需加密?

4. 标准化问题

  • 各家向量数据库的API和数据格式不统一
  • 是否需要行业标准?

本文收录于「AI词汇专栏」,作者:孤岛站岗

本文参考资料(2026年4月):

  • 《向量数据库完全指南》QubitTool 2026.2
  • 《向量数据库选型指南2026》Dev.to
  • Milvus官方文档 2026.4
  • 《43K Star的向量数据库实测》腾讯云 2026.4
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/14 19:43:15

程序员夫妻的日常对话,外人听起来像加密通话

一、需求分析&#xff1a;当家务分工变成“用户故事”场景还原妻子&#xff1a;“冰箱食材库存告警&#xff0c;需补充生鲜模块。采购需求优先级&#xff1a;鸡蛋&#xff08;紧急&#xff09;、牛肉&#xff08;高&#xff09;、草莓&#xff08;低&#xff09;。若遇榴莲&…

作者头像 李华
网站建设 2026/4/14 19:42:19

CodeBERT实战指南:从安装到代码向量化的完整流程

1. CodeBERT是什么&#xff1f;能解决什么问题&#xff1f; 第一次听说CodeBERT时&#xff0c;我正被一个代码搜索需求困扰——要在十万行遗留代码中找出所有处理用户登录的Java方法。手动翻阅就像大海捞针&#xff0c;直到发现这个能同时理解代码和自然语言的AI工具。 简单来说…

作者头像 李华
网站建设 2026/4/14 19:41:24

ArcGIS面积制表:一键统计各行政区不同地类的栅格单元数

1. 为什么你需要掌握面积制表功能 做土地规划的朋友们应该都遇到过这样的需求&#xff1a;需要统计某个县区里耕地、林地、建设用地的具体分布情况。传统做法是先提取各类用地栅格&#xff0c;再用分区统计工具逐个计算&#xff0c;整个过程繁琐又容易出错。 我在参与某市国土…

作者头像 李华
网站建设 2026/4/14 19:40:35

Jenkins凭据管理实战:GitHub密钥配置与安全最佳实践

1. Jenkins凭据管理基础 在持续集成和持续交付&#xff08;CI/CD&#xff09;流程中&#xff0c;Jenkins作为自动化构建工具的核心地位毋庸置疑。而凭据管理则是Jenkins安全体系中最为关键的环节之一。我见过太多团队因为忽视凭据安全而导致的严重事故&#xff0c;比如代码泄露…

作者头像 李华
网站建设 2026/4/14 19:40:31

JumpServer开源堡垒机权限管理与安全配置实战

1. JumpServer堡垒机入门指南 第一次接触JumpServer时&#xff0c;我被它简洁的界面和强大的功能所吸引。作为一款开源的堡垒机系统&#xff0c;它完美解决了我们团队在服务器权限管理上的痛点。记得刚开始部署时&#xff0c;我花了整整一个周末研究它的各项功能&#xff0c;现…

作者头像 李华
网站建设 2026/4/14 19:40:07

3分钟掌握缠论可视化:通达信智能分析插件终极指南

3分钟掌握缠论可视化&#xff1a;通达信智能分析插件终极指南 【免费下载链接】Indicator 通达信缠论可视化分析插件 项目地址: https://gitcode.com/gh_mirrors/ind/Indicator 你是否曾经为复杂的缠论分析而头疼&#xff1f;面对K线图上密密麻麻的走势&#xff0c;难以…

作者头像 李华