进阶应用 高级

Vector Stores:向量数据库选型与使用

对比主流向量数据库(FAISS、Chroma、Milvus、PGVector),掌握相似度检索与元数据过滤。

选型速查

  • FAISS:Facebook 开源库,纯内存、极快,适合原型与中小数据;
  • Chroma:开箱即用的嵌入式向量库,API 友好,适合本地开发;
  • Milvus / Qdrant / Weaviate:独立服务的分布式向量库,生产级大数据量;
  • PGVector:给 PostgreSQL 加向量能力,一个库搞定"业务数据 + 向量";
  • Elasticsearch / Redis:已有基础设施时顺带支持向量检索。

基本操作(以 Chroma 为例)

from langchain_chroma import Chroma

vectorstore = Chroma.from_documents(chunks, embedding=embeddings,
                                    persist_directory="./chroma_db")

# 相似度检索
hits = vectorstore.similarity_search("退款政策", k=3)

# 带分数检索(分数越小越相似)
hits = vectorstore.similarity_search_with_score("退款政策", k=3)

# 元数据过滤
hits = vectorstore.similarity_search(
    "退款政策", k=3, filter={"source": "policy.pdf"})

检索器进阶

  • MMR(最大边际相关):兼顾相关性与多样性,避免返回 k 条几乎相同的片段;
  • 混合检索:向量检索 + BM25 关键词检索取长补短,用 RRF 融合排序;
  • Parent-Document 检索:用小块检索、返回其所属大块,兼顾精度与上下文。

📝 课后练习

quiz-1 MMR(最大边际相关)检索策略的优势是?