Qdrant:用 Rust 写的向量数据库,32k Star

正文顶部截图

Qdrant 是一个向量相似度搜索引擎,也是一个向量数据库。它用 Rust 编写,目前在 GitHub 上有 32k+ 的 Star。

README区域截图

Qdrant 的定位很明确:为 AI 应用提供向量搜索能力。你可以把 embeddings 或神经网络编码器的输出存进去,然后做匹配、搜索、推荐这些事。

它提供了一个生产级的服务,带 REST 和 gRPC 接口,支持存储、搜索和管理带有附加 payload 的向量点。

核心能力

Qdrant 支持三种向量搜索:稠密向量用于语义相似度,稀疏向量用于全文搜索,多向量用于一个对象有多个 embedding 的场景,比如 ColBERT 这类晚期交互模型。

过滤能力是它的一个重点。你可以给向量附加任意 JSON payload,然后用关键词匹配、全文搜索、数值范围、地理位置等条件组合过滤,支持 must、should、must_not 逻辑。

混合搜索把语义理解和关键词精度结合到一个查询里,结果通过可配置的融合策略合并,比如 Reciprocal Rank Fusion 和 Distribution-Based Score Fusion。

内置量化可以把内存占用降低最多 97%,在搜索速度和精度之间做权衡。

分布式部署支持分片和副本,可以在不停机的情况下更新或调整集合规模。

其他特性还包括:分面聚合、基于正负样本的推荐、向量空间区域约束发现、Maximal Marginal Relevance 搜索调优、多租户分区、可观测性指标和审计日志、payload 索引优化查询计划、SIMD 硬件加速、GPU 索引加速、异步 I/O、写前日志保障数据持久化。

客户端与部署

官方提供了 Go、Rust、JavaScript/TypeScript、Python、.NET/C#、Java 客户端库,社区有 PHP 版本。

最简单的启动方式是 Docker:

docker run -p 6333:6333 qdrant/qdrant

Python 连接示例:

from qdrant_client import QdrantClient
client = QdrantClient(url="http://localhost:6333")

Qdrant 还有一个 Edge 版本,是面向边缘设备和资源受限环境的轻量方案。它跑在应用进程内,数据本地存储和查询,可以和 Qdrant Server 同步。适合需要低延迟和离线功能的场景。

适用场景

Qdrant 适合需要向量搜索的 AI 应用:语义文本搜索、相似图片推荐、电商商品分类等。它的 demo 项目里有这些场景的在线体验。

Qdrant Cloud 提供托管服务,包含免费额度。

demo 项目里有这些场景的在线体验。

Qdrant Cloud 提供托管服务,包含免费额度。

更多推荐