LlamaIndex 支持的向量数据库

介绍

LlamaIndex 向量存储的核心结论:统一接口、20+款向量库、本地/自建/云全覆盖;开发首选 Chroma/FAISS,生产首选 Milvus/Qdrant/Pinecone,混合检索与异步都支持。


VectorStore 是什么

在 LlamaIndex 里,VectorStore 是存放「文本块 → 向量」的底层存储,配合 VectorStoreIndex 做语义检索。

  • 流程:文档分块 → 向量化 → 写入向量库 → 查询时向量相似度召回。
  • 代码入口:通过 StorageContext 注入任意向量库。
from llama_index.core import StorageContext, VectorStoreIndex
from llama_index.vector_stores.chroma import ChromaVectorStore

vector_store = ChromaVectorStore(...)
storage_context = StorageContext.from_defaults(vector_store=vector_store)
index = VectorStoreIndex.from_documents(docs, storage_context=storage_context)

支持的向量数据库

本地/轻量(开发/小数据)

  • Chroma:零配置、本地文件持久化、支持元数据过滤/混合检索;uv add chromadb
  • LanceDB:Rust高性能嵌入式向量库,文件式存储无需部署服务,支持SQL查询、多模态数据、版本管理,检索速度优于Chroma;uv add lancedb
  • FAISS:Facebook 开源、CPU/GPU 极速、内存/磁盘索引;uv add faiss-cpu
  • SQLite-Vec:轻量化嵌入式向量引擎,依托SQLite文件存储,无独立服务,体积极小,适合低资源设备、桌面离线程序;uv add sqlite-vec
  • PGVector:PostgreSQL向量扩展,依托数据库服务运行,结构化数据+向量一体化管理,适合已有PostgreSQL业务栈项目;uv add pgvector

自建/开源(部署)

  • Milvus:星型架构、千亿级、多索引/分区/TTL;uv add pymilvus。
  • Qdrant:高性能、GPU 加速、丰富过滤/聚合;uv add qdrant-client。
  • Weaviate:内置向量+关键词、模块化、支持 GraphQL;uv add weaviate-client。

云托管(免运维/企业级)

  • Pinecone:全托管、高可用、自动扩缩;uv add pinecone。
  • Azure AI Search:微软云、混合检索、安全合规;uv add azure-search-documents。
  • 阿里云 OpenSearch:国内生态、向量+全文、低成本;uv add aliyun-opensearch。

国内特色

  • 百度 VectorDB:百度云、中文优化、高并发。
  • DashVector:全托管、毫秒级、Serverless 计费。

嵌入式数据库

  • Chroma
  • LanceDB
  • FAISS
  • SQLite-Vec

对比

向量库 部署 持久化 混合检索 元数据过滤 异步 适合
Chroma 本地 ✅ ✅ ✅ ✅ 开发/小知识库
FAISS 本地 ❌(需手动) ❌ ❌ ❌ 极速检索/原型
Milvus 自建/云 ✅ ✅ ✅ ✅ 企业级/大规模
Qdrant 自建/云 ✅ ✅ ✅ ✅ 高性能/复杂过滤
Pinecone 云 ✅ ✅ ✅ ✅ 免运维/生产

功能支持

  1. 统一接口:所有向量库共用 add/query/delete/get,切换只需改配置。
  2. 元数据过滤:按文档来源、时间、标签筛选,精准召回。
  3. 混合检索(Hybrid):向量相似度 + BM25 关键词,解决纯向量短板。
  4. 异步支持:全异步 I/O,高并发场景更稳。
  5. 持久化与备份:本地库自动落盘,分布式库支持集群/快照。

选型建议

  • 开发/测试:选 Chroma(零配置、持久化、易调试)。
  • 小规模生产:选 Qdrant(高性能、Docker 一键部署)。
  • 大规模/企业级:选 Milvus(集群、分区、运维完善)。
  • 免运维:选 Pinecone(全托管、高可用)。

常见问题

  • FAISS 数据丢失:内存索引,需手动 vector_store.persist(path) 保存。
  • Chroma 并发慢:单进程适合小数据,高并发换 Milvus/Qdrant。
  • 向量维度不匹配:确保嵌入模型维度(如 text-embedding-ada-002 为 1536)与向量库一致。

原文出处:/show_1GW3L4hxtk2c.html