免费POC, 零成本试错
FDE知识库

FDE知识库

学习大模型的前沿技术与行业落地应用


收藏

Milvus 3.0 开源解读|词法+语义高亮,如何解决Agent的搜索噪音?

发布日期:2026-08-18 21:18:46 浏览次数: 1686
作者:Zilliz

微信搜一搜,关注“Zilliz”

推荐语

Milvus 3.0推出词法+语义高亮能力,精准解决Agent搜索噪音,降低上下文成本,提升检索效率。
核心内容:
1. RAG与Agent面临的搜索噪音问题及影响(上下文成本高、噪音分散注意力)
2. Milvus 3.0的Highlight能力:词法+语义高亮解决方案
3. 词法高亮的具体实现(BM25/TextMatch匹配,Token级高亮)

杨芳贤
53AI创始人/腾讯云(TVP)最具价值专家
RAG与Agent用到深水区,一定会遇到这个问题:明明检索结果没什么问题,但模型输出结果似乎总是差点意思,上下文成本也一直居高不下。
根本原因在于,为了将所有相关的内容完整召回,经常一次query,可以打捞出三五段,甚至十段文档给LLM。
如果每篇文档几千字,一个query就要消耗几万个token。但问题是,这10篇文档里,真正有用的句子可能只有几十句,而剩下的,全是噪音。
大量的噪音灌入,不仅浪费token,也分散了LLM注意力。
对人类用户来说同样如此,电商、客服RAG中,经常会有几千字的技术文档、几十页的合同或很长的客服记录,阅读者打开文档,再逐段寻找“重点”,不仅搜寻麻烦,还要多一个文档下载过程。
为了解决这一问题,在Milvus 3.0中,我们引入了最新的Highlight能力,可以对与查询相关的文本进行词法(BM25 搜索文本或显式的TextMatch查询匹配 token)或者语义层面的高亮:短文本直接展示匹配内容,长文本截取重点及附近上下文,从而降低大模型的上下文长度,也让电商、知识库等场景的检索变得更加高效、直观。
以下为本次高亮能力升级的具体解读。

01 

词法高亮:通过Token匹配高亮

作为基础、最常用的方案,词法高亮的逻辑和 BM25、Text Match 搜索一脉相承,复用同一套分词规则(analyzer)来处理查询和结果文本;匹配到命中的词汇后,直接按照它们在原文中的位置插入高亮标记,保证搜索命中的词项和结果展示的边界完全一致,不会出现错位偏差。
查询与结果文本 → analyzer → token 匹配 → 原文位置 → 高亮结果
使用上它有两种灵活的配置方式。
如果是配合 BM25 搜索使用,只需开启highlight_search_text=True,系统就会直接用当前的搜索关键词生成高亮。比如搜索 “BM25 混合搜索”,返回的标题 “BM25 与混合搜索的配置方法” 会自动标注出匹配的关键词,让用户一眼看到命中点。
from pymilvus import LexicalHighlighter, MilvusClientclient = MilvusClient(uri="http://localhost:19530")highlighter = LexicalHighlighter(    pre_tags=[""],    post_tags=[""],    highlight_search_text=True,)results = client.search(    collection_name="document_titles",    data=["BM25 混合搜索"],    anns_field="title_sparse",    search_params={"metric_type": "BM25"},    limit=10,    output_fields=["title"],    highlighter=highlighter,)
如果需要自定义匹配规则,或是给向量搜索结果补充关键词匹配证据,也可以通过highlight_query显式指定 TextMatch 条件,灵活设置目标字段和匹配文本。
highlighter = LexicalHighlighter(    highlight_search_text=False,    highlight_query=[{        "type": "TextMatch",        "field": "title",        "text": "BM25 混合搜索",    }],    pre_tags=[""],    post_tags=[""],)
当前显式词法高亮查询支持 TextMatch。它只在已经返回的结果中查找并标记匹配 token,不扩大候选集,也不重新排序。它也可以用于向量搜索结果,为结果补充指定关键词的匹配证据。
当目标字段变成长正文时,词法高亮不会返回完整文本,而是以片段的形式输出匹配内容。
词法高亮的结果以 fragment 组织。默认 fragment_size 为 100 个字符,num_of_fragments 为 5。因此,对于超过 100 个字符的文本,高亮结果通常不会覆盖全文,而是自动返回匹配位置附近的 fragment。
如果多个匹配落在同一个 fragment 范围内,它们会合并到同一个片段;如果匹配分布在文本的不同位置,则会按原文顺序生成多个 fragment,直到达到 num_of_fragments 的限制。
例如,搜索“BM25 调优”后,一篇文档可能分别在“索引配置”“查询参数”和“性能排查”章节中出现相关内容。可以进一步调整 fragment 参数,控制上下文范围和返回数量:
highlighter = LexicalHighlighter(    pre_tags=[""],    post_tags=[""],    highlight_search_text=True,    fragment_offset=30,    fragment_size=160,    num_of_fragments=3,)
结果可能包含:
[    "...创建稀疏索引时,mark>BM25mark> 的参数会影响...",    "...查询阶段可以通过这些配置完成 mark>BM25mark> mark>调优mark>...",    "...排查延迟时,需要同时检查 mark>BM25mark> 查询参数...",]
如果希望展示更完整的上下文,可以通过 fragment_offset 和 fragment_size 调整片段范围;num_of_fragments 用于控制最多返回多少段。fragment 按匹配内容在原文中的先后顺序返回,不会按照 BM25 分数重新排序。
这些片段会随每个搜索结果的 highlight 字段返回。即使正文没有作为普通输出字段返回,Milvus 也可以取得高亮所需的文本并生成片段,避免为了展示少量重点而返回完整正文。

02 

语义高亮:对文本进行单独解读

词法高亮的匹配前提是查询和文档共享相同的词汇,但这也构成了它的能力边界。
当二者语义相关但表述完全不同时 —— 比如用户搜 “账号登不上怎么恢复”,文档里写的是 “连续验证失败后可由管理员解除账户锁定”—— 词法匹配就很难精准定位重点,这时候就需要语义高亮发挥作用。
语义高亮是可以搜索结果返回后,通过独立的语义模型对文本做二次解读,独立判断查询与各文本片段的语义关联度,筛选出最相关的内容进行标记。这样,哪怕查询和文档没有重合的关键词,只要语义相通,就都能被准确识别出来。
但是在构建语义高亮能力的过程中,我们发现,市面上各种已有的语义高亮模型,要么只支持英文,要么上下文窗口太小(512 token),要么协议不友好(不允许商业使用)。没有一个能同时满足:中英文都强、窗口够大、泛化能力好、协议友好。
所以,我们构建并开源了内部最新的Semantic Highlight(语义高亮)模型并将其作为Milvus 3.0能力的一环。
详情参考官宣,Milvus开源语义高亮模型:告别饱和检索,帮RAG、agent剪枝80%上下文
它不仅支持中英文双语处理,帮助用户更好的理解高亮核心内容。同时,由于Semantic Highlight 和 Context Pruning 上下文剪枝本质是同一技术的一体两面。这个能力也可以用于 Context Pruning 场景,在 Agent 应用中对上下文做精准裁剪,降低大模型的 token 成本。
使用时,只要通过 SemanticHighlighter 传入查询语句、待分析的文本字段和对应的模型部署 ID,返回结果就会包含带高亮标记的片段,以及对应的语义相关性分数。
from pymilvus import SemanticHighlighterhighlighter = SemanticHighlighter(    queries=["怎样恢复无法登录的账号"],    input_fields=["content"],    pre_tags=[""],    post_tags=[""],    model_deployment_id="your-model-deployment",)results = client.search(    collection_name="support_articles",    data=[query_embedding],    anns_field="embedding",    search_params={"metric_type": "COSINE"},    limit=10,    output_fields=["title"],    highlighter=highlighter,)
其中,queries 提供需要理解的问题,input_fields 指定需要分析的文本字段。返回结果中除了相关片段,还可以包含对应的片段分数。
场景上,语义高亮适合长文档问答、RAG 引用、客服知识库和查询改写较多的场景。它寻找的是语义关联,而不是要求查询和文档共享相同 token。

03 

使用须知

需要注意的是,语法高亮与语义高亮均为基于搜索结果的后处理能力,不参与召回与排序,不影响结果顺序与分数,也不能完整解释相关性分数的计算过程。
此外,当前 Milvus 实现中的语义高亮依赖配置好的外部高亮服务或模型部署,不是通用的本地离线能力。具体可用性取决于产品、部署方式和版本,应以目标环境文档为准。

53AI,企业落地大模型首选服务商

产品:场景落地咨询+大模型应用平台+行业解决方案

承诺:免费POC验证,效果达标后再合作。零风险落地应用大模型,已交付160+中大型企业

联系我们

售前咨询
186 6662 7370
预约演示
185 8882 0121

微信扫码

添加专属顾问

回到顶部

加载中...

扫码咨询

扫码登录
登录即表示您同意《53AI网站服务协议》
服务协议

欢迎您使用【53AI 官方网站】(以下简称“本网站”或“我们”)。本《会员服务协议》(以下简称“本协议”)是您(以下简称“会员”或“用户”)与【深圳市博思协创网络科技有限公司】之间关于注册、登录及使用本网站会员服务所订立的法律协议。

在您注册或登录前,请务必审慎阅读、充分理解各条款内容,特别是免除或限制责任的条款、知识产权条款、争议解决条款等。此类条款将以加粗形式提示您注意。 当您通过微信公众号授权、手机验证码验证或其他方式成功登录本网站时,即视为您已完全理解并同意接受本协议的全部内容。

一、 定义

本网站:指由【深圳市博思协创网络科技有限公司】运营的,域名为【53ai.com】的网站及相关移动端页面。

会员服务:指本网站向注册会员提供的知识库文章查阅、内容检索及其他相关增值服务。

知识库内容:指本网站发布的包括但不限于文字、图表、数据、研究报告、行业分析等数字化内容资源。

二、 账号注册与登录

登录方式:本网站支持以下登录方式,您可根据实际情况选择:

微信公众号授权登录:您同意将您的微信OpenID信息授权给本网站,用于创建或关联会员账号。

手机验证码登录:您需提供真实有效的手机号码,并通过短信验证码完成身份验证与登录/注册。

账号安全:您的账号仅限您本人使用,禁止赠与、借用、租用、转让或售卖。因您保管不善导致的账号被盗、密码泄露等损失,由您自行承担。

实名认证:根据相关法律法规要求,我们可能要求您在特定功能下完成实名认证。如您拒绝提供,可能无法使用部分或全部服务。

未成年人保护:若您未满18周岁,请在法定监护人的陪同下阅读本协议,并在征得监护人同意后使用本服务。

三、 服务内容与规范

知识库查阅权限:会员登录后,有权按照其会员等级对应的权限范围,在线浏览、检索本网站知识库中的相关文章及内容。

服务变更:我们有权根据业务发展需要,调整、变更或终止部分服务内容,并将以网站公告、公众号消息等方式提前通知。

禁止行为:您在使用服务时不得实施以下行为:

利用技术手段批量爬取、下载、转存知识库内容;

将知识库内容用于商业目的或未经授权地向第三方传播;

干扰本网站正常运行或侵犯其他用户合法权益;

发布违法违规信息或从事违反公序良俗的活动。

四、 知识产权声明

权利归属:本网站知识库中的排版设计、软件代码等内容的知识产权均归【公司全称】或原权利人所有,受《中华人民共和国著作权法》等法律保护。

有限许可:本网站授予会员一项非独占、不可转让、不可转授权的普通许可,仅限于个人学习、研究之目的在线查阅知识库内容。

侵权追责:未经书面许可,任何单位或个人不得以任何形式复制、转载、摘编、镜像、汇编或以其他方式使用上述内容。一经发现,我们保留追究其法律责任的权利。

五、 个人信息保护

我们重视对您个人信息的保护。关于我们如何收集、使用、存储和保护您的个人信息,请单独阅读 《隐私政策》。

您通过微信公众号授权或手机号验证所提供的信息,我们将严格按照《个人信息保护法》的规定处理,仅用于身份识别、服务提供及安全验证等必要用途。

您可以随时通过网站设置或联系客服行使查阅、更正、删除个人信息及撤回授权同意的权利。

六、 免责声明

内容准确性:知识库内容仅供参考,不构成专业建议。我们不对其完整性、准确性、时效性作任何明示或暗示的保证,您应自行判断并承担使用风险。

不可抗力:因自然灾害、政策法规变化、网络故障、第三方平台接口异常(如微信接口维护、运营商短信通道故障)等不可抗力导致的服务中断或延迟,我们不承担违约责任。

第三方链接:本网站可能包含指向第三方网站的链接,该等网站的内容和服务不受我们控制,请您自行甄别风险。

七、 违约责任

如您违反本协议约定,我们有权视情节采取警告、限制功能、暂停服务、注销账号等措施,并保留要求赔偿损失的权利。

如因您的违约行为导致我们遭受行政处罚、第三方索赔或商誉损失,您应承担全部赔偿责任(包括但不限于罚款、赔偿金、律师费、公证费等)。

八、 法律适用与争议解决

本协议的订立、执行和解释均适用中华人民共和国大陆地区法律。

因本协议产生的或与本协议有关的任何争议,双方应友好协商解决;协商不成的,任何一方均可向【公司所在地】有管辖权的人民法院提起诉讼。

九、 其他

本协议构成双方就本服务达成的完整协议,取代此前任何口头或书面约定。

本协议任一条款被认定为无效或不可执行的,不影响其他条款的效力。

我们对本协议享有最终解释权,并在法律允许的范围内保留随时修改的权利。修改后的协议一经公布即生效,继续使用服务即视为同意修订内容。


已查阅