Qdrant 简介 🔖
Qdrant 是一款专为人工智能和机器学习应用设计的开源向量数据库,旨在提供高效的向量存储和相似性搜索能力。
核心特点:
- 开源与高性能:Qdrant 遵循 Apache 2.0 许可协议,完全开源,并针对高维向量数据进行了深度优化,确保在大规模数据集上的快速查询性能。13
- 实时性与灵活性:支持实时向量搜索,并允许在查询时结合元数据过滤(通过“负载”功能),满足复杂的业务需求。
- 分布式架构:支持水平扩展,可部署在多节点集群上,提升系统的可伸缩性和可靠性,适合云原生环境。
- 多语言支持:RESTful API + gRPC(v1.8+),通过 RESTful API 和 gRPC 接口,与多种编程语言无缝集成,包括 Python、.NET 等。
- 先进算法:支持 HNSW、IVF、DiskANN 等索引,采用 HNSW(层次可导航小世界)等近似最近邻(ANN)算法加速搜索,并支持欧几里得距离、余弦相似度等多种距离度量。
- 适用场景:RAG、推荐系统、语义搜索、AI Agent 记忆库
Docker部署 🔖
# 拉取最新镜像 docker pull qdrant/qdrant:latest # 创建持久化目录 mkdir -p /Users/xxx/Documents/docker/qdrant/storage # 启动容器(带 API Key 认证) docker run -d \ --name qdrant \ -p 6333:6333 \ -p 6334:6334 \ -v /Users/xxx/Documents/docker/qdrant/storage:/qdrant/storage \ -e QDRANT__SERVICE__API_KEY="your_strong_secret_key" \ qdrant/qdrant:latest
6334 是 Qdrant 官方指定的 gRPC 协议通信端口,和 6333 端口(HTTP/REST 协议)是 Qdrant 提供的两种不同接口:
- 6333 端口:走 HTTP/REST 协议,适合调试、简单请求、手动调用(比如用 curl 测试、Postman 调接口);
- 6334 端口:走 gRPC 协议,是 Qdrant 为高性能、大批量数据交互设计的专用端口,也是生产环境中推荐使用的接口方式。
- 调试阶段可以用 6333 端口快速验证功能,但在正式上线的项目中,建议使用 6334 端口的 gRPC 接口,能显著提升服务的响应速度和并发能力。
- Qdrant 官方为各种编程语言(Python、Go、Java 等)提供的 SDK,底层默认优先使用 gRPC 协议(即 6334 端口),只有在 gRPC 不可用时才降级到 HTTP。比如 Python 的
qdrant-client库,只要你配置的地址包含 6334 端口,就会自动用 gRPC 通信。
✅ REST API:http://localhost:6333
✅ Dashboard(Web UI):http://localhost:6333/dashboard