介绍
本文介绍向量存储数据库
内存存储
1. InMemoryVectorStore
LangChain 内置的 极简纯内存向量存储,无任何外部依赖,所有向量数据与关联文本仅存储在程序运行时的内存中,进程终止后数据完全清空,是「零成本验证向量搜索逻辑」的首选工具,也是 LangChain 最轻量的向量存储方案。
特点:
- 依赖:零外部依赖(仅需 LangChain 核心包)
- 持久化:❌ 完全不持久化,数据仅存活于进程生命周期
- 数据量支持:千级文本片段(超 1000 条易内存溢出,无索引优化)
- 核心功能:仅支持基础余弦相似度检索,无元数据过滤、增量更新、重排序等高级功能
- 检索速度:小数据量下极快(内存直查,无磁盘 IO 开销)
适用场景:
- 纯原型测试:快速验证「文本嵌入→向量存储→相似检索」核心逻辑,无需搭建外部向量库;
- 教学 / 演示:简化向量搜索流程,聚焦核心原理,避免环境配置干扰;
- 单元测试:为 RAG 流程编写自动化测试用例,消除外部依赖;
- 临时小数据检索:处理单份文档拆分后的千级片段,用完即弃的临时场景。
缺点
- 数据安全:程序崩溃 / 重启后数据全丢失,绝对不可用于生产环境;
- 功能单一:仅满足基础检索,无元数据过滤、增量更新等实用功能;
- 性能边界:无索引优化,数据量超 1000 条后检索速度骤降,易内存溢出。
轻量、低依赖、适配测试/原型
1. Chroma
轻量级开源向量库,支持内存/本地文件两种模式,是 InMemoryVectorStore 最常用的升级替代;
特点:
- 零配置开箱即用(内存模式和
InMemoryVectorStore一样简单); - 支持数据持久化(切换到本地文件模式,程序重启后数据不丢失);
- 支持元数据过滤、增量更新等基础高级功能;
- 依赖少(仅需
pip install chromadb),千级~十万级数据适配;
适用场景:原型验证后、本地开发阶段(比 InMemoryVectorStore 多持久化能力)。
2. FAISS
Facebook 开源的轻量级向量检索库,聚焦高效相似度搜索,支持内存/本地文件存储;
特点:
- 纯内存模式下和
InMemoryVectorStore一样无持久化,速度更快; - 支持向量索引优化(如 IVF、HNSW),万级数据检索效率远高于
InMemoryVectorStore; - 仅依赖
faiss-cpu(轻量),中文适配友好;
❌ 无原生元数据管理(需手动关联文本/元数据);
适用场景:本地开发、小数据量(万级)检索(比 InMemoryVectorStore 性能更好)。
3. SimpleVectorStore
LangChain 另一个极简向量存储,比 InMemoryVectorStore 多基础持久化(本地 JSON 文件);
特点:
- 零依赖,和
InMemoryVectorStore一样易上手; - 支持将向量数据保存为本地 JSON 文件(轻量持久化);
- 仅实现核心相似度搜索,无冗余功能;
适用场景:需要「轻量持久化」的测试场景(不想装第三方库,但需要数据保留)。
轻量化企业级替代(适配小团队/准生产)
1. Milvus Lite
Milvus 分布式向量库的轻量版,单文件运行,无需部署集群;
特点:
- 内存/本地文件模式可选,支持百万级数据;
- 兼容 Milvus 全量 API,后续可无缝升级到分布式集群;
- 支持元数据过滤、多向量检索、重排序等高级功能;
- 依赖轻(
pip install pymilvus),本地即可运行;
适用场景:小团队准生产、十万级~百万级数据(比 FAISS/Chroma 适配更大数据量)。
2. Weaviate Embedded
Weaviate 向量数据库的嵌入式版本,单进程运行,无需 Docker/集群;
特点:
- 内存模式下和
InMemoryVectorStore一样便捷,支持持久化; - 内置语义搜索、知识图谱关联,支持多模态向量检索;
- 适配千级~十万级数据,轻量且功能丰富;
适用场景:需要「语义+知识图谱」的测试/开发场景(比 Chroma/FAISS 功能更全)。
同类工具对比
| 向量存储类 | 持久化 | 依赖 | 数据量支持 | 核心优势 | 适用阶段 |
|---|---|---|---|---|---|
| InMemoryVectorStore | ❌ 否 | 无 | 千级 | 零依赖、极速测试 | 纯测试/演示 |
| SimpleVectorStore | ✅ 轻量(JSON) | 无 | 千级 | 零依赖+基础持久化 | 测试+数据保留 |
| Chroma | ✅ 是 | 轻量 | 十万级 | 易上手+完整功能+持久化 | 原型→本地开发 |
| FAISS | ❌ 可选 | 轻量 | 万级 | 检索速度快+索引优化 | 本地开发(性能优先) |
| Milvus Lite | ✅ 是 | 轻量 | 百万级 | 轻量+分布式兼容+大数据量 | 准生产/小团队 |
总结
- 纯测试(零依赖、不持久化):优先用
InMemoryVectorStore,替代可选FAISS(内存模式,速度更快); - 测试+轻量持久化(不想装复杂库):选
SimpleVectorStore(LangChain 内置); - 原型→本地开发(需要持久化+基础功能):首选
Chroma(最适配 LangChain,易上手); - 本地开发(性能优先、万级数据):选
FAISS(检索速度优于 Chroma); - 准生产(十万级~百万级):选
Milvus Lite(轻量且可无缝升级到分布式)。