LangChain VectorStore 的几种检索方式

516 字
3 分钟
LangChain VectorStore 的几种检索方式

👉 最常用,按向量相似度排序,返回最接近的文档。

  • 参数:

    • ​query​: 查询文本
    • ​k​: 返回的文档数
  • 作用:找出“最相似”的内容,适合大多数问答场景。

  • 缺点:不会考虑“查询和文档的匹配相关性权重”,只看向量。

docs = vectorstore.similarity_search("拜登的气候政策", k=3)

2. similarity_search_with_score​#

👉 和 similarity_search​ 一样,但会返回 相似度分数。

  • 作用:

    • 可根据分数过滤低相关性文档;
    • 适合需要“阈值控制”的任务(比如只要相似度 >0.8 的结果)。
docs = vectorstore.similarity_search_with_score("气候变化", k=3)
for doc, score in docs:
print(doc.page_content, score)

3. max_marginal_relevance_search​ (MMR)#

👉 最大边际相关性检索,在相似度的基础上增加“多样性”。

  • 作用:

    • 避免检索结果过于重复;
    • 适合用户需要“覆盖不同角度”的问题,比如“中美关系”时返回中方和美方新闻,而不是全是中方的。
  • 机制:

    • 在相似度高的候选中,挑一部分相似但彼此差异大的文档。
docs = vectorstore.max_marginal_relevance_search("国际气候合作", k=5, fetch_k=20)

4. similarity_search_by_vector​#

👉 如果你 自己已经有了 query 的向量(比如外部 embedding 模型算的),可以直接用这个接口。

  • 作用:绕过 LangChain 的 embedding,直接用外部向量进行搜索。
  • 适合场景:比如你有多模态输入(图像、音频 → embedding),但想在同一个 Milvus 里检索文本。
embedding_vector = [0.12, -0.33, 0.88, ...] # 自己算的
docs = vectorstore.similarity_search_by_vector(embedding_vector, k=3)

5. as_retriever​#

👉 把向量库封装成一个 Retriever,供 RAG / QA Chain 使用。

  • 优势:

    • 统一接口,可以随意切换 FAISS、Milvus、PGVector;
    • 可以配合 RetrievalQA​、ConversationalRetrievalChain​ 等。
  • 检索模式可配置(例如 similarity / MMR):

retriever = vectorstore.as_retriever(search_type="mmr", search_kwargs={"k": 5})
docs = retriever.get_relevant_documents("拜登在联合国说了什么")

📝 总结对比#

方法功能适合场景
​similarity_search​按相似度取Top-K默认、通用
​similarity_search_with_score​相似度+分数需要阈值过滤
​max_marginal_relevance_search​相似+多样性避免结果重复、覆盖不同角度
​similarity_search_by_vector​直接用外部向量查多模态 / 自定义 embedding
​as_retriever​转换成RetrieverRAG、QA链集成

文章分享

如果这篇文章对你有帮助,欢迎分享给更多人!

LangChain VectorStore 的几种检索方式
https://guoxin.wiki/posts/langchain-vectorstore-search/
作者
Guoxin
发布于
2026-09-14
许可协议
CC BY-NC-SA 4.0
Profile Image of the Author
Guoxin
写代码,也写思考。
公告
博客初建,笔记陆续搬家中。所有文章均经脱敏检查后发布。
分类
标签
最新动态
站点统计
文章
12
分类
6
标签
24
总字数
13,485
运行时长
0 天
最后活动
0 天前
站点信息
构建平台
Unknown CI
博客版本
Firefly v6.16.8
文章许可
CC BY-NC-SA 4.0
文章目录