Milvus 3.0 新特性解读|词法与语义高亮:如何消除 Agent 搜索中的噪音干扰
在 RAG(检索增强生成)与 AI Agent 应用日益普及的今天,一个核心问题正逐渐浮出水面:当系统检索返回大量文档时,如何让用户和大模型快速定位到真正有价值的信息?现实情况往往是,一次查询可能召回数十篇文档,总篇幅动辄数万 token,但其中真正与问题相关的句子可能仅有寥寥数十句。这种大量噪音的涌入,不仅造成了严重的 token 浪费,更分散了大模型的注意力,影响了最终输出质量。
概述
Milvus 3.0 针对这一痛点,创新性地引入了 Highlight(高亮)能力,能够对检索结果中与查询相关的文本进行精准标记。这项能力分为两个层次:词法高亮和语义高亮。前者基于传统的 BM25 和 TextMatch 匹配技术,后者则借助语义模型进行深度理解。两种方式相互补足,共同为用户和大模型提供清晰、直观的检索结果展示。
词法高亮:基于 Token 匹配的精准定位
词法高亮是整个高亮体系的基础方案,其核心逻辑与 BM25 搜索、TextMatch 匹配一脉相承。系统复用同一套分词规则(analyzer)来处理查询和结果文本,在匹配到目标词汇后,按照原文位置精确插入高亮标记,确保搜索命中的词项与结果展示的边界完全一致。
语义高亮与 Context Pruning 本质上是同一技术的一体两面,这个能力可以帮助 RAG 和 Agent 剪枝 80% 的上下文。
“技术洞察”积墨企业专属知识库
混合检索 + 重排序技术,支持多源文档一键向量化导入,为企业打造专属高精度知识大脑。
词法高亮的使用方式与 Fragment 机制
在实际使用中,词法高亮提供了两种灵活的配置方式。一种是通过设置 highlight_search_text=True,让系统直接使用当前搜索关键词自动生成高亮;另一种是通过 highlight_query 显式指定 TextMatch 条件,实现更精细的匹配控制。值得注意的是,当处理长文本时,词法高亮不会返回完整内容,而是采用 Fragment(片段)机制进行智能截取。默认配置下,每个片段长度为 100 字符,最多返回 5 个片段,系统会自动选择匹配位置附近的上下文作为展示内容。用户还可以通过 fragment_offset 和 fragment_size 参数调整上下文范围,实现更灵活的展示效果。
语义高亮:跨越词汇界限的深度理解
词法高亮的能力边界在于,它依赖于查询和文档共享相同的词汇。当二者语义相关但表述完全不同时,如用户搜索「账号登不上怎么恢复」,而文档中写的是「连续验证失败后可由管理员解除账户锁定」,词法匹配就难以精准定位。这时候,语义高亮就展现出其独特优势——它通过对搜索结果进行二次语义分析,独立判断查询与各文本片段的关联度,即使没有重合关键词,也能准确识别相关内容。
如有侵权,请联系删除。
