土法炼钢兴趣小组的算法知识备份

【向量检索引擎】Milvus · Segcore · Knowhere · Qdrant · Lance · pgvector

文章导航

分类入口
databasestorage
标签入口
#vector-search#milvus#knowhere#segcore#qdrant#lance#pgvector#hnsw#ann#rag#hybrid-search

目录

向量检索引擎:Milvus · Segcore · Knowhere · Qdrant · Lance · pgvector

数据库研究前沿 把 HNSW、DiskANN、IVF-PQ 讲清了;大模型基础设施 把 RAG 召回与向量库选型讲清了;湖仓末篇 则把 Lance 留在「湖侧格式」边界。中间仍缺一层:生产向量引擎里,一条 insert / search 如何穿过 Proxy、Streaming Node、Query Node,Segment 如何从 Growing 变成带索引的 Sealed

本系列以 Milvus 2.6.x 为内核主线,写:

系列状态:已完成(2026-07-12);讲解加深(2026-07-13);S 档源码钉点 + reproduce(2026-07-25);A 档 pgvector 对照 + storage/39 收束(2026-07-25)。全 19 篇;第 3/5/7/8/11 篇钉 milvus v2.6.21 / knowhere v2.6.18;第 19 篇钉 pgvector v0.8.0。规划见 PLAN.md

版本锚定:Milvus v2.6.21;Knowhere v2.6.18;pgvector v0.8.0;Qdrant、Lance 在对照篇标注当时文档版本。本机实验以 hnswlib / 页装箱公式微基准为主;不伪造十亿级集群吞吐,也不假装本机跑过 Docker Milvus / 本机 Postgres+pgvector(无则脚本显式 BOUNDARY)。

适合谁看

在知识栈中的位置

系列 本系列关系
ANN 算法 db-frontier/08–09 外链,不重写
向量引擎内核 本系列 Segcore / Knowhere / 集群路径
湖侧向量格式 lakehouse/21 第 16 篇对照
RAG 应用 llm-infra/17–18 第 18 篇回链
存储入门 storage/39 第 1 篇一句分工

一、这个领域最值得关注的 5 个问题

  1. 向量库和「带向量列的数据库」差在哪一层? → 第 1、2、18、19 篇:专用引擎 vs pgvector Index AM / 8KB 页模型。

  2. 一条 insert 如何从 Proxy 落到 Growing Segment,再变成可检索的 Sealed + Index? → 第 3–6、10 篇:WAL、Flush、Handoff、Data Node 建索引。

  3. 一次 search 如何同时扫 Growing 与 Sealed,并在 Proxy 归并?Knowhere 在哪一层? → 第 7–9 篇:Segcore 执行、Knowhere 插件、Delegator / reduce。

  4. 标量过滤为何会毁掉召回或延迟? → 第 11 篇;对读 db-frontier/09;pgvector 默认 post-filter 见第 19 篇。

  5. 十亿级时该上 Milvus、Qdrant、Lance,还是先留在 pgvector? → 第 15–19 篇:对照与决策树。

二、篇目依赖关系与推荐阅读路径

flowchart TD
  A["01 向量引擎全景"] --> B["02 ANN 工程接口"]
  A --> C["03 Segment 状态机"]
  C --> D["04 Proxy Coord"]
  C --> E["05 Streaming WAL"]
  E --> F["06 对象存储布局"]
  C --> G["07 Segcore"]
  G --> H["08 Knowhere"]
  G --> I["09 分布式归并"]
  F --> J["10 DataNode compaction"]
  H --> J
  I --> K["11 混合过滤"]
  I --> L["12 一致性"]
  J --> M["13 Delete Upsert"]
  L --> N["14 副本故障"]
  K --> O["15 Qdrant 对照"]
  F --> P["16 Lance 对照"]
  N --> Q["17 排障"]
  O --> R["18 选型地图"]
  P --> R
  Q --> R
  R --> S["19 pgvector 对照"]
路径 篇目 适合
从 RAG 下沉 1 → 3 → 7 → 8 → 11 → 18 llm-infra 读者补引擎
从 ANN 算法来 2 → 8 → 11 → 17 frontier/08 读者补工程
写路径优先 1 → 3 → 5 → 6 → 10 → 13 平台 / 运维
读路径优先 1 → 3 → 7 → 8 → 9 → 12 延迟与召回排查
选型对照 1 → 15 → 16 → 18 → 19 架构决策(含同进程 SQL)
已有 Postgres 1 → 18 → 19PG 页面 sqlGate 读者
完整通读 1 → … → 19 系统掌握

三、目录与每篇价值点

第一部分:生态与数据模型

  1. 向量引擎全景:算法、RAG 与专用引擎之间的一层
    • 四类「向量库」反例 + 四层 SVG/时序图;SIGMOD 2021→2.6 同一条 insert 怎么走。
  2. ANN 算法工程接口:Knowhere 插件契约
    • Train/Build/Load/Search 生命周期图;构建期 vs 查询期旋钮;算法细节外链 frontier/08。
  3. Collection · Partition · Segment · Channel
    • Growing/Sealed 状态机与 flush/handoff 时序;纠正「一个 Collection 一张大图」。

第二部分:写路径与持久化

  1. Proxy 与 Coordinator:DDL、TSO 与拓扑
    • DDL/DML/DQL 三岔路图;TSO 分配时序;与 Spanner/TiDB 时间戳对照。
  2. Streaming Node 与 Woodpecker WAL:实时可搜
    • Streaming 三件套 + Message→WAL→Growing 时序;MemoryBuffer vs QuorumBuffer。
  3. 对象存储上的 Segment 布局
    • 对象路径树与读路径寻址;V1 小文件 vs V2 pruning。

第三部分:读路径与索引内核

  1. Query Node 与 Segcore:段级 search
    • Segcore↔︎Knowhere 分层;Growing+Sealed 并行 search 时序。
  2. Knowhere:索引构建、加载与硬件后端
    • 插件注册/加载、CPU/GPU 分发、bitset 进入 Query。
  3. 分布式 search 归并:Delegator 与 Proxy reduce
    • 多级 reduce 拓扑 SVG;GuaranteeTs 等待如何变成延迟。
  4. Data Node:compaction 与 index build
    • 建索/合并/handoff 流水线;队列堆积如何拖垮新鲜度。

第四部分:过滤、一致性与变更

  1. 混合检索与标量过滤
    • 表达式→bitset→Knowhere;选择度打穿 Top-\(k\) 归并的教学演算。
  2. 一致性模型与 guarantee timestamp
    • 四级 vs ServiceTime;强一致等待时序;「刚写入就能搜到」的精确含义。
  3. Delete · Upsert · TTL
    • 软删 bitset 生命周期;upsert override vs delete+insert。
  4. 副本、负载与故障恢复
    • 多副本拓扑;WAL 迁移与 Wait for Ready。

第五部分:对照、运维与收束

  1. Qdrant 对照:单库路径与 payload 过滤
    • 单进程栈 vs Milvus 四层对照图;何时不必上分布式。
  2. Lance / LanceDB 对照:格式还是服务
    • 湖格式 vs 在线引擎边界;版本/snapshot 对齐。
  3. 生产排障:召回、延迟、堆积、OOM
    • 症状→机制决策树;从最小故事反推检查清单。
  4. 选型与阅读地图
    • 选型决策树与 bake-off 方法;回链 RAG;开放问题收束。
  5. pgvector 内核对照:同进程 SQL 与专用引擎
    • Index AM、8KB 页上 HNSW element/neighbor、iterative_scan;与 Growing/Sealed 差分。

四、与相邻系列的分工

话题 本系列 相邻系列
HNSW / DiskANN 原理 第 2/8 篇只谈接口 db-frontier/08
ACORN / 混合过滤算法 第 11 篇工程落点 db-frontier/09
RAG 流水线与 GraphRAG 第 18 篇回链 llm-infra/17–18
Lance vs Parquet 随机访问 第 16 篇对照 lakehouse/21
向量存储入门 第 1 篇一句;已收束阅读路径 storage/39
pgvector / PG 页与扩展 第 19 篇内核对照 postgresql-kernel/0220

参考


返回 数据库索引 · db-frontier · llm-infra

同主题继续阅读

把当前热点继续串成多页阅读,而不是停在单篇消费。

2026-07-12 · database / storage

【向量检索引擎】Knowhere:向量索引执行引擎与插件契约

按官方 Knowhere 文档说明其在 Milvus 中的位置、相对 Faiss 的扩展(bitset、SIMD 选择、二进制度量)、VecIndex 类层次与 IDMAP/IVF/HNSW 等类型,用插件注册、CPU/GPU 分发与 bitset 进查询三张图钉住工程契约,并与 db-frontier/08 的算法细节分工。


By .