mcpField
S
similarity-search-patterns

similarity-search-patterns

github.com/wshobson数据与数据库41.9k10.8k 次安装2 周前更新
代码仓库

关于 similarity-search-patterns

介绍高效相似性搜索生产实践的技能,涵盖距离度量、索引选择、参数调优与评估,适用于构建语义搜索、检索或推荐系统的团队。

主要功能

  1. 01选择距离度量
  2. 02Flat、HNSW 与 IVF+PQ 索引指导
  3. 03调节召回率与速度
  4. 04结合语义与关键词搜索
  5. 05监控搜索质量

适用场景

  1. 01构建语义搜索系统
  2. 02实现 RAG 检索
  3. 03创建推荐引擎
  4. 04降低大规模搜索延迟

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/wshobson/agents --skill similarity-search-patterns

安装后在 Claude Code 中输入/similarity-search-patterns确认已加载。

附带文件references/details.md

详细介绍

相似度搜索模式

在生产系统中实现高效相似度搜索的模式。

何时使用本技能

  • 构建语义搜索系统
  • 实现 RAG 检索
  • 创建推荐引擎
  • 优化搜索延迟
  • 扩展到数百万个向量
  • 结合语义搜索与关键词搜索

核心概念

1. 距离度量

| 度量 | 公式 | 最适合 | | ------------------ | ------------------ | --------------------- | --- | -------------- | | 余弦 | 1 - (A·B)/(‖A‖‖B‖) | 归一化嵌入 | | 欧几里得(L2) | √Σ(a-b)² | 原始嵌入 | | 点积 | A·B | 大小很重要 | | 曼哈顿(L1) | Σ | a-b | | 稀疏向量 |

2. 索引类型
┌─────────────────────────────────────────────────┐
│                 Index Types                      │
├─────────────┬───────────────┬───────────────────┤
│    Flat     │     HNSW      │    IVF+PQ         │
│ (Exact)     │ (Graph-based) │ (Quantized)       │
├─────────────┼───────────────┼───────────────────┤
│ O(n) search │ O(log n)      │ O(√n)             │
│ 100% recall │ ~95-99%       │ ~90-95%           │
│ Small data  │ Medium-Large  │ Very Large        │
└─────────────┴───────────────┴───────────────────┘

模板与详细示例

完整的模板库和详细示例位于 references/details.md。当你需要具体模板时,请阅读该文件。

最佳实践

应该做的
  • 使用合适的索引 - 大多数情况下使用 HNSW
  • 调整参数 - 使用 ef_search、nprobe 来平衡召回率/速度
  • 实现混合搜索 - 与关键词搜索结合
  • 监控召回率 - 衡量搜索质量
  • 尽可能预过滤 - 缩小搜索空间
不应该做的
  • 不要跳过评估 - 在优化前先衡量
  • 不要过度索引 - 从 flat 开始,再逐步扩展
  • 不要忽视延迟 - P99 对用户体验很重要
  • 不要忘记成本 - 向量存储成本会累积

评论

支持 Markdown