恒美微站 Logo 恒美微站
  • 首页
  • 关于我们
  • 建站服务
  • 主题模板
  • 案例展示
  • 资讯中心
  • 联系我们

LangChain 向量检索核心解析:similarity_search_with_score 和 similarity_search_with_relevance_scores 到底有什么区别?

  • 首页
  • 资讯中心
  • /
  • LangChain 向量检索核心解析:similarity_search_with_score 和 similarity_search_with_relevance_scores 到底有什么区别?

相关资讯

《Lightpanda:933 个真实网页峰值内存 123MB,一个不画像素的无头浏览器》 2026/10/18 23:12:52
安全审计技能:从漏洞扫描到可信交付的工程化实践 2026/10/18 23:12:52
联邦知识蒸馏与无噪差分隐私实战指南 2026/10/18 23:07:52

最新资讯

openMVG三维重建第一步:ImageListing入口程序详解与焦距估算
调节阀CV值计算:阻塞流与闪蒸空化修正的工程指南
无域环境下SQL Server AlwaysOn高可用集群搭建完整指南
开源本地化代码审查工作流:Git+CLI+本地LLM实战指南
开源代码审查CLI工具:本地LLM+Git Hook实现精准增量审查
让Code Review自动化:基于CI的增量代码审查流水线实践

今日推荐

OpenCowork 实测:支持本地文件、飞书机器人的 Windows AI 助手(只需配置 Token)
GPT-6 Sol 与 Luna 怎么选?Chat、Work、Codex 版本差异与 TaoToken 接入实测
openclaw.net 集成 ElBruno.MempalaceNet 记忆系统:把 MCP 配置改到 TaoToken 的完整实践

本周热门

基于GMM的语音识别系统原理与MATLAB实现详解
数字图像处理入门:反白、灰度化、调色板修改与导出txt实践
机器人大脑技术盘点:具身智能的感知、决策与数据闭环

本月精选

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证
2026 大模型集体涨价:用 Python 做企业 Token 成本测算与选型避坑(附配置)

LangChain 向量检索核心解析:similarity_search_with_score 和 similarity_search_with_relevance_scores 到底有什么区别?

发布时间:2026/10/18 23:12:52
LangChain 向量检索核心解析:similarity_search_with_score 和 similarity_search_with_relevance_scores 到底有什么区别? 一、前言为什么同样是相似度搜索分数却不一样在开发 RAG 知识库系统时我们经常会看到类似代码docs vectorstore.similarity_search_with_score( query )或者docs vectorstore.similarity_search_with_relevance_scores( query )两者名字非常接近similarity_searchscorerelevance_scores很多刚接触 LangChain 的开发者会认为“它们返回的不都是相似度分数吗为什么还要设计两个方法”实际上两者最大的区别就在于分数是否经过标准化处理。二、similarity_search_with_score() 是什么1. 基本作用similarity_search_with_score()根据用户输入的 query在向量数据库中搜索最相似的文档并返回原始距离或者原始相似度分数。示例results vectorstore.similarity_search_with_score( 什么是 RAG, k3 ) for doc, score in results: print(score) print(doc.page_content)返回0.23 RAG 是一种结合搜索和大语言模型的方法 0.45 向量数据库用于存储 Embedding 0.78 机器学习基础知识三、similarity_search_with_score() 的分数有什么特点重点来了分数没有统一标准。原因不同向量数据库FAISSChromaMilvusPineconeWeaviate使用的距离算法可能不同。例如1. 欧氏距离L2 Distance公式距离越小越相似结果可能0.12 0.35 0.89这里0.12 比 0.89 更相关。2. 余弦距离Cosine Distance可能0.01 0.20 0.60通常越接近 0代表越相似。3. 内积Inner Product可能0.95 0.82 0.61可能越大越相似。所以similarity_search_with_score()返回的 score可能0-1也可能0-100甚至负数都属于正常情况。四、为什么不同数据库分数不同因为向量搜索本质上是在计算两个向量之间的距离。例如用户问题什么是人工智能Embedding[ 0.21, 0.34, 0.56, ... ]数据库中的文档[ 0.22, 0.35, 0.55, ... ]然后计算query vector | | ↓ distance calculation | | ↓ score但是距离怎么算由数据库和算法决定。五、similarity_search_with_relevance_scores() 是什么这个方法解决了一个问题不同数据库返回的 score 没有统一标准。所以 LangChain 对结果进行了相关性归一化处理。使用similarity_search_with_relevance_scores()示例results vectorstore.similarity_search_with_relevance_scores( 什么是RAG, k3 ) for doc, score in results: print(score)返回0.92 0.81 0.63六、relevance score 有什么特点它经过统一处理范围0 score 1含义分数含义0.9-1.0高度相关0.7-0.9比较相关0.5-0.7一般相关0.5相关性较低并且分数越大表示文档越相关。七、两者核心区别总结对比similarity_search_with_scoresimilarity_search_with_relevance_scores返回内容文档 原始score文档 归一化score是否标准化❌ 否✅ 是范围不固定0~1是否依赖数据库强依赖弱依赖适合场景底层调试业务判断跨数据库比较困难方便八、代码对比方法一原始scoredocs vectorstore.similarity_search_with_score( query, k5 ) for doc, score in docs: print( fscore:{score} )可能输出score:0.231 score:0.452 score:0.891问题不同数据库可能变成score:15.2 score:8.6 score:3.1代码无法统一判断。方法二relevance scoredocs vectorstore.similarity_search_with_relevance_scores( query, k5 ) for doc, score in docs: print( fscore:{score} )输出score:0.96 score:0.82 score:0.71可以直接if score 0.8: print(保留)九、RAG 项目中应该使用哪个这是很多开发者关心的问题。场景一调试向量搜索推荐similarity_search_with_score()原因可以看到底层真实距离。例如检查Embedding 是否正常向量是否生成正确数据是否入库场景二知识库问答系统推荐similarity_search_with_relevance_scores()例如RAG用户问题 ↓ 向量检索 ↓ 相关性过滤 ↓ LLM生成答案可以docs [ doc for doc, score in results if score 0.75 ]过滤低质量文档。十、实际开发中的一个坑很多新人会这样写docs vectorstore.similarity_search_with_score( query ) if score 0.8: use_document()问题如果当前数据库score 是距离例如0.2代表高度相关。那么0.2 0.8结果直接过滤掉。导致明明相关的文档却没有被召回。正确方式如果不知道底层算法使用similarity_search_with_relevance_scores()十一、底层原理简单理解可以这样理解similarity_search_with_score类似数据库 A文档 距离 0.15 B文档 距离 0.42 C文档 距离 0.89这是原始测量值。similarity_search_with_relevance_scores类似经过加工A文档 相关度 0.95 B文档 相关度 0.75 C文档 相关度 0.30变成业务更容易理解的数据。十二、总结今天我们学习了 LangChain 中两个重要方法similarity_search_with_score()和similarity_search_with_relevance_scores()核心区别一句话总结similarity_search_with_score 返回的是向量数据库原始评分不同算法和数据库结果可能不同similarity_search_with_relevance_scores 会对评分进行归一化将结果转换为 0~1 的相关性分数更适合业务判断。在实际 RAG 项目中调试检索效果 → 使用similarity_search_with_score判断文档相关性 → 使用similarity_search_with_relevance_scores做阈值过滤 → 优先使用relevance_scores掌握这两个方法的区别是理解 LangChain 向量检索机制的重要一步也是优化 RAG 系统准确率的基础。

关于恒美微站

恒美微站专注于为个体商户、工作室提供极简自助建站服务,让每个人都能轻松拥有专业网站。

快速链接

  • 关于我们
  • 建站服务
  • 主题模板
  • 案例展示
  • 资讯中心

服务项目

  • 可视化建站
  • 拖拽编辑
  • 主题定制
  • SEO 优化
  • 网站托管

联系方式

  • 📍 地址:北京市朝阳区建国路 88 号
  • 📞 电话:400-888-8888
  • ✉️ 邮箱:info@hmyw.cn
  • 🕐 时间:周一至周日 9:00-18:00

© 2024 恒美微站 hmyw.cn 版权所有 | 京 ICP 备 12345678 号