Qdrant:面向 AI 应用的向量搜索引擎

Qdrant 是一个开源的向量相似度搜索引擎和向量数据库,目前在 GitHub 上已经获得了 31,775 个 Star:

正文顶部截图

README区域截图

Qdrant 用 Rust 编写,提供生产级的服务,支持通过 API 存储、搜索和管理向量数据。每个向量可以附带 JSON 格式的 payload,便于实现基于属性的过滤。

Qdrant 适用于语义搜索、推荐系统、图像检索、RAG 等 AI 应用场景。

核心功能

Qdrant 支持多种向量搜索模式:

  • 密集向量搜索:用于语义相似度匹配
  • 稀疏向量搜索:用于全文检索
  • 多向量搜索:支持一个对象包含多个向量,适用于 ColBERT 等延迟交互模型

在过滤方面,Qdrant 支持对 payload 进行丰富的条件过滤,包括关键词匹配、全文检索、数值范围、地理位置等,条件之间可以组合使用 should、must、must_not 等逻辑。

混合搜索功能允许在一个查询中组合多种向量类型,通过 RRF 或 DBSF 等融合策略合并结果,兼顾语义理解和关键词精度。

内置的向量量化技术可将内存占用降低 97%,用户可以在搜索速度和精度之间调整平衡。

分布式部署支持分片和复制,可以横向扩展,更新和重设 collection 时无需停机。

其他特性包括:

  • 推荐搜索:用正负样本找相似点
  • 发现搜索:将搜索约束在向量空间的特定区域
  • 多租户:支持多用户环境的数据隔离
  • SIMD 硬件加速:利用 x86/x64 和 Neon 指令集提升性能
  • GPU 支持:加速索引构建,支持 NVIDIA 和 AMD 显卡
  • 预写日志:保证数据持久化,断电时也能确认更新

快速上手

通过 Docker 本地运行 Qdrant:

docker run -p 6333:6333 qdrant/qdrant

使用 Python 客户端连接:

from qdrant_client import QdrantClient

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

Qdrant 提供多种官方客户端:Go、Rust、JavaScript/TypeScript、Python、.NET/C#、Java,也有社区维护的 PHP 客户端。

API 方面,Qdrant 提供 REST API 和 gRPC 接口。REST API 带有 OpenAPI 3.0 规范,可生成几乎任何语言的客户端。

部署形态

Qdrant 提供三种部署方式:

服务端部署:传统的客户端/服务器架构,数据持久化存储,适合生产环境。

Qdrant Edge:轻量级版本,运行在应用进程内部,数据本地存储和查询,可与服务器同步。适合需要低延迟和离线功能的场景。

Qdrant Cloud:全托管的云服务,包含免费 tier,无需自己维护基础设施。

应用场景

Qdrant 的官方 demo 展示了几个典型场景:

语义文本搜索:基于预训练神经网络实现超越关键词匹配的语义检索。

图像搜索:通过视觉相似度帮助用户找到相似的图片,即使不知道图片名称。

极端分类:将 Qdrant 与预训练 transformer 模型结合,用于电商商品分类等多标签分类任务。

Qdrant 还集成了主流 AI 生态工具,包括嵌入模型提供商、AI 应用框架、数据管道工具和可观测性平台,具体可查阅官方 Ecosystem 页面。

Web UI 提供了可视化的数据浏览和集群管理界面,可以查看 collection、管理数据、调用 REST API。界面简洁,操作直观,降低了上手门槛。

小结

Qdrant 作为 Rust 编写的向量数据库,在性能、功能和部署灵活性上都有不错的表现。31,775 个 Star 的成绩说明社区对其认可度较高。如果你的项目需要处理高维向量数据的存储和检索,Qdrant 值得纳入技术选型的考虑范围。无论是本地原型开发还是生产环境部署,它都能提供对应的解决方案。

区对其认可度较高。如果你的项目需要处理高维向量数据的存储和检索,Qdrant 值得纳入技术选型的考虑范围。无论是本地原型开发还是生产环境部署,它都能提供对应的解决方案。

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐