混合搜索再探:引入线性检索器!

article/2025/8/17 11:22:59

作者:来自 Elastic  Panagiotis Bailis

Elasticsearch 拥有大量新功能,帮助你为你的使用场景构建最佳搜索解决方案。深入阅读我们的示例笔记本了解更多内容,开始免费云试用,或立即在本地机器上体验 Elastic。


在我们之前的博客文章中,我们介绍了全新设计的检索器框架,它支持构建复杂的排序管道。我们还探讨了 Reciprocal Rank FusionRRF )检索器如何通过合并来自不同查询的结果实现混合搜索。虽然 RRF 易于实现,但它有一个显著的限制:它仅关注相对排名,忽略了实际得分。这使得微调和优化变得具有挑战性。

认识一下 linear retriever

在这篇文章中,我们介绍了最新的混合搜索支持组件 —— linear retriever!与 rrf 不同,linear retriever 会对所有命中某个文档的查询计算加权和。这种方法既保留了每个文档在结果集中的相对重要性,又允许精确控制每个查询对最终得分的影响。因此,它为微调混合搜索提供了一种更直观、更灵活的方式。

定义一个 linear retriever,其最终得分将按如下方式计算:

就是这么简单:

GET linear_retriever_blog/_search
{"retriever": {"linear": {"retrievers": [{"retriever": {"knn": {...}},"weight": 5},{"retriever": {"standard": {...}},"weight": 1.5},]}}
}

注意它有多简单直观吧?(而且和 rrf 非常相似!)这个配置允许你精确控制每种查询类型对最终排序的贡献,而 rrf 只依赖相对排名。

但仍然有一个注意事项:knn 的分数可能会被严格限制,这取决于所使用的相似度度量方式。例如,对于余弦相似度或单位归一化向量的点积,分数始终在 [0, 1] 范围内。相比之下, bm25 的分数则更不可预测,而且没有明确定义的边界。

分数缩放: kNN vs BM25

混合搜索的一个挑战在于,不同的检索器产生的分数位于不同的尺度上。比如,考虑下面这个场景:

查询 A 的分数:

doc1doc2doc3doc4
knn0.3470.350.3480.346
bm251001.510.5

查询 B 的分数:

doc1doc2doc3doc4
knn0.3470.350.3480.346
bm250.630.010.30.4

你可以从上面看到差异:kNN 的分数范围在 0 到 1 之间,而 bm25 的分数可能变化很大。这种差异使得为组合结果设置静态的最优权重变得棘手。

归一化来帮忙:MinMax 归一化器

为了解决这个问题,我们引入了一个可选的 minmax 归一化器,它会使用以下公式将每个查询的分数独立缩放到 [0, 1] 范围内:

这会保留每个文档在某个查询结果集中的相对重要性,从而更容易将来自不同 retriever 的分数组合在一起。通过归一化后,分数变成:

查询 A 的分数:

doc1doc2doc3doc4
knn0.3470.350.3480.346
bm251.000.010.0050.000

查询 B 的分数:

doc1doc2doc3doc4
knn0.3470.350.3480.346
bm251.000.0000.4650.645

所有分数现在都在 [0, 1] 范围内,优化加权和变得更加简单,因为我们现在捕捉的是结果相对于查询的重要性,而不是绝对分数,并且保持了查询之间的一致性。

举个例子!

现在我们通过一个例子展示上述内容,以及线性检索器如何解决 rrf 的一些缺点。RRF 仅依赖相对排名,不考虑实际分数差异。例如,给定这些分数:

doc1doc2doc3doc4
knn0.3470.350.3480.346
bm251001.510.5
rrf score0.032260.032520.032000.03125

rrf 会将文档排名为:

doc2>doc1>doc3>doc4

然而,doc1 的 bm25 分数明显高于其他文档,rrf 无法捕捉到这一点,因为它只关注相对排名。线性检索器结合归一化,能正确考虑分数及其差异,产生更有意义的排名:

doc1doc2doc3doc4
knn0.3470.350.3480.346
bm2510.010.0050

如上所示,doc1 在 bm25 上的高排名和分数得到了正确的考虑并反映在最终分数中。此外,所有分数现在都在 [0, 1] 范围内,这样我们可以更直观地比较和组合它们(甚至构建离线优化流程)。

综合起来

为了充分利用带归一化的线性检索器,搜索请求将如下所示:

GET linear_retriever_blog/_search
{"retriever": {"linear": {"retrievers": [{"retriever": {"knn": {...}},"weight": 5},{"retriever": {"standard": {...}},"weight": 1.5,"normalizer": "minmax"},]}}
}

这种方法结合了两者的优点:它保留了线性检索器的灵活性和直观评分,同时通过 MinMax 归一化确保分数尺度一致。

和我们所有的检索器一样,线性检索器可以集成到任何层级的分层检索树中,支持可解释性、匹配高亮、字段折叠等功能。

什么时候选择线性检索器以及它为何重要

线性检索器:

  • 利用实际分数而不仅仅是排名,保持相对重要性。

  • 允许通过不同查询的加权贡献进行微调。

  • 使用归一化增强一致性,使混合搜索更稳健、更可预测。

结论

线性检索器已经在 Elasticsearch Serverless、8.18 和 9.0 版本中提供!更多示例和配置参数也可在我们的文档中找到。试试看它如何提升你的混合搜索体验 —— 期待你的反馈。搜索愉快!

原文:Hybrid search revisited: introducing the linear retriever! - Elasticsearch Labs


http://www.hkcw.cn/article/wQeAOfGqpq.shtml

相关文章

Spring 面经

1.说说什么是IOC? IOC作为Spring的核心技术模块,其主要是讲对象的实例过程交由容器进行管理,而无需我们开发者去处理对应的实例。通过反射创建对象,由容器管理对象生命周期和依赖关系。当然在里面不同Bean之间存在着DI&#xff0…

【开源推荐】HuLa:跨平台聊天应用的新星

在数字化通讯的浪潮中,一款名为HuLa的开源聊天应用正悄然崛起,以其现代化的技术栈和优雅的用户体验,为我们带来了全新的桌面通讯解决方案。 🚀 什么是HuLa? HuLa是一款基于Tauri Vue 3 TypeScript构建的跨平台聊天应…

2025端午档新片票房破5000万 《碟中谍8》领跑预售榜

截至5月30日13时08分,2025年端午档新片预售总票房(含点映)突破了5000万。其中,《碟中谍8:最终清算》在预售票房榜上表现突出,领跑其他新片。责任编辑:zhangxiaohua

3000亿之后的“Labubu困境”! 泡泡玛特LABUBU“一娃难求”

泡泡玛特的股价还在继续涨,它的同行们却正在经历“冰火两重天”。截至2025年5月29日收盘,泡泡玛特报225港元/股,上涨4.31%,总市值再创新高,已经成功迈入“3000亿港元俱乐部”。同日,名创优品虽然也有2.49%的涨幅,市值仅为432.81亿港元,与泡泡玛特相去甚远。泡泡玛特、名…

重庆直辖以来最大国资改革交卷 成效显著止损瘦身

历时约一年半,重庆直辖以来最大规模的国资改革取得了显著成果。5月27日,重庆市国资委召开新闻发布会,介绍了重庆国资国企改革的情况。重庆市国资委党委书记、主任曾菁华表示,这是重庆直辖以来最大最艰苦的国企改革攻坚战。数据显示,2024年重庆市属重点国企利润总额突破377…

VS Code 插件 Git History Diff

插件名 进命令行,进Git自己那个分支 查看分支 提交到Git的后想再把另一个也提交到那个分支,用这个命令

挖洞日记 | Js中的奇妙旅行

目录: 前言: 正片开始: js 中的奇妙发现: 验证 jwt 是否有效: 继续深入: 拿下: 前言: 本文涉及的相关漏洞均已修复、本文中技术和方法仅用于教育目的;文中讨论的所有…

前缀和实现题目:二维区域和检索 - 矩阵不可变

文章目录 题目标题和出处难度题目描述要求示例数据范围 前言解法思路和算法代码复杂度分析 题目 标题和出处 标题:二维区域和检索 - 矩阵不可变 出处:304. 二维区域和检索 - 矩阵不可变 难度 5 级 题目描述 要求 给定一个二维矩阵 matrix \text…

《碟中谍8》阿汤哥水下戏几乎盲拍 重装挑战极限

《碟中谍8》于5月23日在北美地区上映,片长2小时49分钟,烂番茄新鲜度为80%,观众评分为89%。派拉蒙官方发布了该电影的片段,展示了阿汤哥在水下的特技表演。现年62岁的阿汤哥透露,在拍摄这个水下镜头时,他所穿的潜水服重达125磅(约113.4斤),只能穿着10分钟,之后就会缺氧…

荔枝竟会导致低血糖!千万别多吃 当心“荔枝病”

又到了荔枝上市的甜蜜季节果肉晶莹,口感清甜让人忍不住一颗接一颗然而这两天话题#荔枝病#登上社交平台热搜榜据报道,近日,广东一女子过量食用10斤荔枝,次日睡醒出现头晕不适、持续性鼻出血等症状,紧急就医后被诊断为“荔枝病”。网友纷纷惊讶留言“还有这种病?”荔枝会让…

男子翻女友手机发现女友未婚夫 女方:就是牌友而已

河南许昌,刘先生称和女友恋爱2年多,女友比自己大5岁带三个娃,相处期间两人很和睦,自己给对方还房贷,孩子都叫自己爸爸了,却意外发现她手机里还有男朋友,备注叫大哥。女方:我和刘先生就是牌友,和手机里男友的马上要结婚了,给的钱全是打牌的钱...随后,女方正牌男友来到…

民警吃个饭就能识破骗局!成功保住店主30万元

民警吃个饭,就能识破骗局。事情发生在云南,民警田铁林来到一家馄饨店,落座后,却发现老板娘不仅迟迟没有清理餐桌,还一直在通电话。凭借职业警觉,他发现了其中的问题。经过简单沟通,田铁林意识到,老板娘玉女士很可能正在经历电信网络诈骗。当看到与老板娘玉女士通话的号…

《碟中谍8》上映 阿汤哥再现极限特技

5月30日,《碟中谍8:最终清算》将在中国内地上映。从1996年到2025年,该系列已经陪伴了我们近30年。“阿汤哥”汤姆克鲁斯扮演的特工伊森亨特身手不凡、勇敢无畏、智勇双全。在拍摄过程中,他坚持不用替身,亲自完成了许多高难度和高风险的特技动作,让观众沉浸式感受到真实的…

曝华为正开发首款折叠平板 大屏便携新选择

华为在折叠屏领域已处于全球领先地位,拥有最全面的折叠屏产品线。目前,华为推出了小折叠、阔折叠、外折叠、内折叠、三折叠以及折叠PC等多种形态的产品。博主数码闲聊站透露,华为正在开发可折叠平板设备,但具体信息尚未明确。根据现有的折叠屏手机和电脑形态推测,这款折叠…

15岁少年被困!这条“死亡沸腾线”有多可怕?

近日一名15岁少年被困浙江省衢州市乌溪江巨化中学段滚水坝情况危急现场无人机画面显示少年所在位置距坝底落差近3米坝下滚水区形成强烈漩涡一旦少年体力不支被卷入水中极可能发生溺水事故滚水坝下游水流具有强吸力常规救援难以靠近在无人机导航下消防员采取“船头调向抵消水流”…

Labubu二手市场身价数万元 绝版老款成抢手货

由于安全风险上升,泡泡玛特已宣布暂停Labubu在英国的销售,并计划在6月前将该产品从英国门店全面下架。Labubu是泡泡玛特旗下IP,已从一款小众设计师玩偶跃升为国际潮流偶像。最新上市的Labubu系列在美国、英国等地经常“几分钟内”售罄。由于需求火爆,近日伦敦斯特拉特福德韦…

Cursor系列(1):Cursor安装、虚拟环境

1 安装Cursor 下载地址如下: Cursor - The AI Code Editor 2 插件安装 在扩展中搜索你要安装的插件包: 如下: 安装中文汉化插件: 安装完以后需要重启Cursor,插件才能生效。 安装python环境插件,如下&a…

用户隐私如何在Facebook的大数据中得到保护?

在这个数字化时代,用户隐私保护成为了一个全球性的问题。Facebook作为全球最大的社交媒体平台之一,拥有海量的用户数据。这些数据不仅包括用户的基本信息,还涉及到用户的行为习惯、兴趣爱好等。因此,如何在大数据中保护用户隐私成…

男子徒步途中捡到巨型菌子激动到破音 温馨提示:切勿随意采摘与食用野生菌

近日,云南西双版纳,男子徒步时捡到巨型菌子,激动到破音!网友:第一次听到牛肝菌叫!温馨提示,切勿随意采摘与食用野生菌。责任编辑:zx0002

京东向抚养3弟妹的05后骑手致敬 已与其签订正式劳动合同缴纳五险一金

近日,江苏沭阳一名2005年出生的女孩陈姑娘(化名)因家庭变故,独自承担起抚养3个弟妹的责任,引发热议。5月29日,@京东外卖发文:“骑手小姐姐自立自强的故事让人感动,我们向她致敬,也向千千万万的骑手伙伴们致敬!”此前据媒体报道,陈姑娘父亲于2017年确诊肠癌,当时陈姑…