1. Qdrant 简介
Qdrant 是一个高性能的 向量数据库(Vector Database) ,专注于 近似最近邻搜索(ANN, Approximate Nearest Neighbor) 和 多向量 / 多条件混合召回,广泛用于文本、图像、音频等多模态检索场景。
核心特性:
- 支持多向量字段(text vector、image vector 等)
- 支持 metadata(payload)过滤
- 高性能 ANN 索引(HNSW / Flat)
- 支持多向量混合召回(score fusion)
- 可扩展到百万级甚至亿级向量
2. Metadata(Payload)检索
2.1 Payload 定义
Qdrant 中,每条向量记录除了向量本身,还可以携带 JSON 形式的 metadata(称为 payload):
{
"id": 123,
"vector": [...],
"payload": {
"category": "sports",
"language": "en",
"tags": ["basketball", "nba"],
"timestamp": 1735461000
}
}
支持的数据类型:
- String / Number / Boolean / List / Timestamp / Nested JSON
- Geo 位置数据(支持 geo search)
- 可选轻量 full-text
2.2 Metadata 检索能力
Qdrant 支持多种 payload filter:
- 精确匹配(match) :
category == "sports" - 数值范围(range) :
timestamp > 1700000000 AND timestamp < 1800000000 - 多值包含(contains) :
tags contains "nba" - 逻辑组合(AND / OR) :组合多条件
- 嵌套 JSON 查询:
profile.age > 18 - 地理位置过滤:点在多边形内等
- 轻量 full-text(最近版本支持)
2.3 Metadata 检索机制
- 使用 Payload Index(Keyword / Integer / Float / Geo / Full-text)
- 先过滤再向量搜索:过滤候选集 → 在候选集上执行 ANN
- 高性能:位图(bitset)快速过滤,搜索复杂度接近无 filter
3. HNSW 图简介
3.1 定义
**HNSW(Hierarchical Navigable Small World Graph)**是 Qdrant 内置的 ANN 索引结构,用于高维向量快速检索。
3.2 核心原理
-
小世界图:节点为向量,边为相似邻居
-
分层设计:
- 上层稀疏 → 快速远距离跳跃
- 下层密集 → 精确局部搜索
-
查询流程:从顶层入口 → 贪心搜索 → 层层下降 → 底层 top-k 返回
3.3 优势
- 高召回率(>95%)
- 支持动态插入向量
- 查询复杂度低
- 支持百万到亿级向量
4. 混合召回(Hybrid Retrieval)
4.1 定义
Qdrant 的混合召回是 向量检索 + metadata 筛选 +(可选)多向量融合 的组合检索方式。
不同于 Weaviate 的 keyword hybrid,Qdrant 主要是 向量 + metadata + 多向量融合。
4.2 混合召回流程
-
Metadata 过滤
- 使用 payload index 得到 candidate IDs
- Bitset 记录是否允许节点参与搜索
-
向量 ANN 搜索
- 在 HNSW 图中动态跳过不符合 metadata 的节点(filtered traversal)
- 获得候选的向量相似度 score
-
多向量融合(可选)
- 多向量字段分别做 ANN
- 得分归一化
- 按权重融合:
FinalScore = Σ ( weight_i * normalized_score_i )
-
最终排序返回
- 按 FinalScore 排序
- Metadata filter 仅用于候选选择,不参与排序
4.3 关键优化
- 动态过滤:搜索过程中直接跳过不符合 filter 的节点,无需构建子图
- 多向量独立 HNSW 图:每个向量字段有独立索引
- 并行 ANN 搜索 + 分数融合:融合多个向量字段结果
5. 多向量混合召回逻辑
-
每个向量字段有独立 HNSW 图,维度和距离函数可不同
-
查询时可指定:
- 单向量搜索 → 指定 vector field
- 多向量融合 → 指定多个 vector field + 权重
-
内部流程:
- 每个向量字段分别做 ANN
- 归一化分数
- 按权重融合
- 排序返回
注意:不构建统一图,也不动态构建子图,性能高且可扩展。
6. 性能特点
- Metadata filter 命中率 20% → 性能下降 <10%
- 命中率小 → 搜索更快(搜索空间小)
- 支持百万到亿级向量库
- 动态插入向量无需重建索引
7. 总结
Qdrant 的混合召回体系是:
- 多向量独立 HNSW 图 → 高维 ANN
- Metadata 先过滤 → 动态跳过不符合节点
- 可选多向量融合 → weighted sum 得分
- 最终排序 → 高性能混合召回
适用场景:
- 文本 + 图像多模态检索
- 分类 / tag + 向量混合筛选
- 大规模知识库 / 推荐系统 / RAG 系统