Qdrant 是一个开源的向量数据库(Vector Database),专门用于存储、管理和检索高维向量数据。它通过高效的**近似最近邻搜索(ANN, Approximate Nearest Neighbor)**算法,实现毫秒级的相似度查询。
核心定位:
Qdrant = 向量存储 + 相似度搜索 + 过滤能力
适用场景:
传统数据库(如 MySQL、PostgreSQL)主要处理结构化数据,而 AI 应用更多是**"语义相似性"**问题,例如:
向量表示流程:
文本 → Embedding → 向量 → 相似度计算
普通数据库不适合高维向量搜索的原因:
使用 **HNSW(Hierarchical Navigable Small World,分层可导航小世界)**算法:
支持结构化数据过滤(Payload):
{
"vector": [0.12, 0.98, ...],
"payload": {
"category": "tech",
"author": "Alice"
}
}
可实现:"在 tech 分类中找最相似的内容"
| 组件 | 说明 |
|---|---|
| Collection(集合) | 类似数据库中的"表",用于存储向量数据 |
| Point(数据点) | 每条数据包含:向量(Vector)、Payload(元数据)、ID |
| Index(索引) | 使用 HNSW 构建索引,提升查询效率,支持动态更新 |
| Segment(分段) | 数据划分为多个 Segment,提高并发性能,支持增量更新 |
PUT /collections/my_collection
{
"vectors": {
"size": 768,
"distance": "Cosine"
}
}
PUT /collections/my_collection/points
{
"points": [
{
"id": 1,
"vector": [0.1, 0.2, ...],
"payload": {"category": "AI"}
}
]
}
POST /collections/my_collection/points/search
{
"vector": [0.1, 0.2, ...],
"limit": 5,
"filter": {
"must": [
{"key": "category", "match": {"value": "AI"}}
]
}
}
| 场景 | 说明 |
|---|---|
| RAG(检索增强生成) | 将知识库转为向量存入 Qdrant,查询相关内容作为 LLM 上下文 |
| 推荐系统 | 用户行为→向量,商品→向量,相似度匹配推荐 |
| 语义搜索 | 替代关键词搜索,实现模糊匹配和语义理解 |
| 多模态检索 | 支持图像、音频、文本 embedding 的统一检索 |
| 特性 | Qdrant | Milvus | Weaviate |
|---|---|---|---|
| 易用性 | ⭐⭐⭐⭐ | ⭐⭐⭐ | ⭐⭐⭐⭐ |
| 性能 | ⭐⭐⭐⭐ | ⭐⭐⭐⭐ | ⭐⭐⭐ |
| 过滤能力 | 强 | 中 | 强 |
| 部署复杂度 | 低 | 高 | 中 |
Qdrant 优势: 简单易用、强过滤能力、性能与功能平衡良好
Qdrant 是一个专为 AI 时代设计的现代向量数据库,具备:
适合构建: RAG 应用、推荐系统、AI 搜索系统
随着 AI 应用的深入,未来数据的主流形式将从"结构化数据"逐渐转向"向量数据"。向量数据库将成为 AI 基础设施的重要组成部分,而 Qdrant 正站在这一趋势的前沿。