T
traeai
登录
返回首页
Milvus(@milvusio)

混合搜索:向量搜索与BM25的协同

8.2Score
混合搜索:向量搜索与BM25的协同

TL;DR · AI 摘要

混合搜索结合向量搜索与BM25技术,能同时处理语义匹配和精确术语查询,提升检索准确性;Milvus支持通过三步配置实现混合搜索,避免手动插入稀疏向量。

核心要点

  • 向量搜索擅长语义匹配,但对精确术语如产品型号“XR-2048”召回不准。
  • BM25更适合精确关键词匹配,例如“refund policy”可能无法匹配“return process”。
  • Milvus通过添加稠密/稀疏字段、启用内置BM25函数、使用RRFRanker融合结果,实现混合搜索。

结构提纲

按章节快速跳转。

  1. 向量搜索在语义匹配中表现良好,但在处理精确术语时不可靠。

  2. 搜索“XR-2048”时,向量搜索可能返回相似产品而非目标型号。

  3. ·BM25的优势与不足

    BM25擅长精确词匹配,但可能遗漏语义相近的表达如“return process”。

  4. 混合搜索结合向量与BM25,弥补各自短板,提升整体检索质量。

  5. RRF(Reciprocal Rank Fusion)将向量和BM25结果合并为统一排序列表。

  6. §Milvus中的混合搜索实现

    Milvus支持三步配置:添加稠密/稀疏字段、启用BM25函数、使用RRFRanker融合。

思维导图

用一张图看清主题之间的关系。

查看大纲文本(无障碍 / 无 JS 友好)
  • 混合搜索技术
    • 向量搜索
      • 优势:语义匹配
      • 劣势:精确术语召回差
    • BM25
      • 优势:精确词匹配
      • 劣势:忽略语义变体
    • 混合搜索
      • 融合机制:RRF
      • 应用场景:产品名、错误码等
    • Milvus实现
      • 步骤1:添加稠密/稀疏字段
      • 步骤2:启用BM25函数
      • 步骤3:使用RRFRanker

金句 / Highlights

值得收藏与分享的关键句。

#向量搜索#BM25#混合搜索#Milvus#信息检索
打开原文

标题:Milvus on X: "当语义意义重要时,向量搜索效果很好,但使用精确术语时可能不可靠。仅使用向量搜索查询“XR-2048”,你可能会得到类似产品的规格,但不会得到你所要求的确切型号。

BM25 在向量搜索经常遗漏的事情上表现更好:精确术语。当文档中提到“退货流程”时,搜索“退款政策”,BM25 可能会漏掉它。这就是混合搜索存在的原因。向量搜索覆盖语义匹配,BM25 捕获精确术语,而 RRF(互惠排名融合)将两者合并为一个排序列表。在 Milvus 中,你可以通过三个步骤设置:Image 1: 1️⃣ 将密集和稀疏向量字段添加到同一集合中 Image 2: 2️⃣ 启用内置的 BM25 函数,以便 Milvus 可以从原始文本生成稀疏向量 Image 3: 3️⃣ 使用 RRFRanker 融合向量和 BM25 结果 Image 4: ⚠️ 一个重要提示:如果你使用内置的 BM25 函数,请不要手动插入稀疏向量。Milvus 会为你生成它们。只有在使用外部稀疏嵌入模型(如 BGE-M3)时,才需要提供自己的稀疏向量。如果你的查询包含产品名称、错误代码、API 端点或其他精确标识符,仅使用向量搜索可能不够。尝试混合搜索。

Image 5: Image

AI 可能会生成不准确的信息,请核实重要内容