检索策略设计:向量、关键词和混合搜索

发布: (2026年2月28日 GMT+8 14:08)
6 分钟阅读
原文: Dev.to

Source: Dev.to

Focus: 工程权衡、系统架构和实用默认设置

Audience: 熟悉嵌入的后端工程师,想要构建可靠、可控的搜索系统。

1. 检索策略在系统中的位置

一个典型的现代检索流水线如下所示:

flowchart TD
    A[User Query] --> B[Query Rewrite / Intent Analysis]
    B --> C[Multi‑Channel Retrieval
(Vector / Keyword / Metadata)]
    C --> D[Hybrid Merge]
    D --> E[Top‑K Limiting]
    E --> F[Score Threshold Filtering]
    F --> G[(Optional) Reranking]
    G --> H[LLM Generation]

诸如 vector search(向量搜索)、hybrid search(混合搜索)、Top‑K(前 K)以及 threshold filtering(阈值过滤)等概念并非孤立的功能;它们在该流水线的召回与过滤阶段协同工作。

2. 向量搜索:语义召回层

2.1 向量搜索解决的问题

向量搜索解决 语义不匹配

  • 用户和文档使用的词语不同。
  • 含义相似,但词汇重叠度低。

示例

Query:    How to reduce dopamine addiction
Document: Attention control and dopamine regulation

关键词搜索在此失败,但嵌入向量能够成功。

2.2 工程师必须了解的核心参数

相似度度量

度量指标典型用法
余弦相似度行业默认(大多数嵌入模型在训练时假设使用余弦)
点积向量已进行 L2 正规化时常用
L2 距离适用于某些度量学习模型

索引类型(性能关键)

索引类型使用场景
Flat小规模数据集,最高精度
HNSW通用,生产默认
IVF超大规模数据集

对于大多数知识库和 RAG 系统,HNSW 在速度和召回之间提供了最佳的折衷。

2.3 向量搜索的根本弱点

  • 召回能力强 – 检索 相关 内容。
  • 精确度弱 – 可能返回 不相关但语义相近 的条目。

因此,向量搜索 必须结合 以下方式:

  • Top‑K 限制
  • 分数阈值
  • (可选)重新排序

3. 关键字搜索 (BM25):精确层

关键字搜索 并未过时;它的作用是 确定性精确。它在以下方面表现出色:

  • 代码和堆栈跟踪
  • API 名称
  • 错误信息
  • 专有名词、数字和 ID

在许多技术查询中,关键字搜索优于嵌入向量。
一个关键优势是 可控性:确定性匹配可减少幻觉。

4. 混合搜索:行业标准

混合搜索结合了两种方法的优势:

  • Vector search → 语义召回
  • Keyword search → 词汇精确度

4.1 并行混合(最常见)

Vector Search Top‑K = 20
Keyword Search Top‑K = 20

Merge Results

Rerank

优势

  • 实现简单
  • 行为稳定
  • 在生产环境中广泛使用

4.2 分数融合混合

一种加权评分方法:

Final Score = α × Vector Score + β × BM25 Score

适用于需要强全局排序的搜索引擎类系统。

5. Top‑K:召回边界,而非质量保证

误解: “Higher Top‑K means better results.” → 误解: “Top‑K 越高,结果越好。”

事实: Top‑K 定义了 最大召回范围

  • 大的 Top‑K → 更多噪声,更多 token 使用,更高延迟。

实用默认值

场景推荐 Top‑K
FAQ3–5
Technical Docs5–10
Code Search10–20

典型 RAG 默认值

  • Vector Top‑K:8–10
  • Keyword Top‑K:8–10

6. Score Threshold Filtering: The Missing Safeguard

Top‑K 总是会返回结果——即使没有任何相关内容。阈值过滤可以解决这个问题:

Only keep results where score > threshold

未使用阈值的失败示例

Query:  Apple phone
Result: Apple fruit

阈值指南(余弦相似度)

SimilarityInterpretation
> 0.85高度相关
0.75–0.85可接受
6. Rerank Top 5
7. Send Top 3 to LLM

该流水线在召回率、精确度、成本和稳定性之间取得平衡。

8. 工程师真正应该关注的事项

8.1 召回率 vs. 精确率 的权衡

Vector Search → Recall
Keyword Search → Precision
Reranker      → Final Quality

理解这三者之间的关系比调优任何单一参数都更重要。

8.2 Chunk 设计比算法更关键

不合理的分块会破坏所有检索策略:

  • 块太长 → 嵌入稀释
  • 块太短 → 上下文碎片化

优秀的检索从合适的块边界开始。

8.3 Top‑K 并非最终输出规模

典型的生产流程:

Retrieve 20 → Filter to 12 → Rerank to 5 → LLM consumes 3

结论

现代检索系统 不仅仅基于向量搜索

混合检索 + 阈值过滤 + 重排序 才是可靠、可控的 AI‑增强生成的真正基础。

如果你以系统思维而非单一算法思维来设计检索,质量会显著提升。

0 浏览
Back to Blog

相关文章

阅读更多 »

当工作成为心理健康风险时

markdown !Ravi Mishrahttps://media2.dev.to/dynamic/image/width=50,height=50,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fu...