Apache Doris 混合检索技术解析

Lee Happen

中文演讲 #ai

Apache Doris 的混合检索能力将传统全文检索(基于关键词的词典搜索)与向量检索(基于语义的搜索)相结合,提供更精准的搜索结果。这种能力特别适合需要同时兼顾关键词匹配和语义理解的复杂搜索场景,如电商、内容推荐和知识库搜索。

混合检索核心原理

混合检索充分发挥两种搜索方式的优势:

  • 全文检索(BM25):基于倒排索引和关键词匹配,擅长精确匹配用户输入的查询词。Doris 使用 BM25 算法(默认)计算文档与查询的相关性得分,适合结构化文本搜索。
  • 向量检索(语义搜索):通过将文本转换为向量(embedding),利用机器学习模型计算查询与文档的语义相似度,擅长理解查询意图和上下文。
  • 融合机制:采用特定评分和排序技术(如 Reciprocal Rank Fusion/RRF 或 Convex Combination/CC)整合两种方法的搜索结果,平衡词典相关性和语义相关性。

技术实现架构

Doris 混合检索依赖以下技术组件和工作流:

  1. 字段类型支持

    • 文本字段:通过分词器生成倒排索引,支持全文检索
    • 向量字段:使用模型将文本转为向量类型存储
  2. 复合索引

    • 支持同时存储文本和向量字段
    • 启用混合查询功能
  3. 查询执行流程

    • 词典查询:使用 match 查询检索关键词匹配的文档(基于 BM25 算法)
    • 向量查询:使用 knn 查询或 ANN 索引检索语义相似的文档(基于余弦相似度等)
    • 混合查询:并行执行两种查询,通过融合算法整合结果
  4. 结果融合策略

    • RRF(逆序位融合):根据文档在不同查询结果中的排名计算综合得分,强调在多搜索方法中均排名靠前的文档
    • CC(凸组合):通过加权求和整合 BM25 和向量查询得分,需手动调整权重平衡
    • 支持通过 script_score 或 Rerank 模型进一步优化结果排序

讲师:


Apache Doris PMC 成员