Python + Qdrant Qdrant+ gRPC gRPC + qdrant-client

用 Docker 部署 Qdrant 向量数据库并通过客户端库完成向量存储与相似度检索

Docker 容器提供生产就绪的 Qdrant 服务,qdrant-client 通过 HTTP/gRPC 与其通信,形成标准客户端-服务器架构

✓ Rust 编写,高负载下快速可靠✓ 提供多语言官方客户端 ✕ 默认部署无认证且对所有网络接口开放

方案简介

本方案介绍如何在本地使用 Docker 快速部署 Qdrant 向量搜索引擎,并通过 Python 客户端库连接、存储和检索向量数据。

Qdrant(读作 quadrant)是一个向量相似度搜索引擎和向量数据库。它提供了一个生产就绪的服务,配有便捷的 API 来存储、搜索和管理点(point)——即带有附加 payload 的向量。Qdrant 特别为扩展过滤支持而设计,适用于各种基于神经网络或语义的匹配、分面搜索等应用场景。

Qdrant 使用 Rust 编写,即使在高负载下也能保持快速和可靠。借助 Qdrant,嵌入(embedding)或神经网络编码器可以被转化为完整的应用,实现匹配、搜索、推荐等功能。Qdrant 也提供完全托管的 Qdrant Cloud 服务(含免费额度)。

本方案适合希望在本地快速体验向量搜索能力、或为其 AI 应用(语义搜索、推荐系统、图像检索等)搭建向量存储后端的开发者。

亮点与能力

  • 稠密、稀疏与多向量搜索:支持稠密向量做语义相似度、稀疏向量做全文检索,以及多向量搜索(多嵌入对象或 ColBERT 等后期交互模型)。
  • Payload 过滤:对向量附带的 payload 提供扩展过滤支持。
  • REST API:提供符合 OpenAPI 3.0 规范的 REST API,可为几乎所有框架和编程语言生成客户端。
  • gRPC 接口:面向生产环境的更快搜索,额外提供 gRPC 接口。
  • 多语言客户端:官方提供 Go、Rust、JavaScript/TypeScript、Python、.NET/C#、Java 客户端,社区提供 Kotlin、PHP 客户端。
  • 生产就绪:Rust 实现,高负载下快速可靠。

组成与分工

  • Qdrant:核心向量数据库服务,负责存储、搜索和管理带 payload 的向量点,以 Rust 编写。
  • Docker:容器化运行 Qdrant 服务,一条命令即可启动本地实例。
  • Python / qdrant-client:官方 Python 客户端库,用于连接服务器并进行向量数据的写入与查询。
  • gRPC / REST (OpenAPI 3.0):服务暴露的两种接口,REST 便于通用集成,gRPC 用于更快生产级搜索。

前置要求

  • 本地已安装 Docker。
  • 如使用 Python 客户端,需具备 Python 环境并安装 qdrant-client。
  • 部署到生产前建议阅读官方 installation 与 security 指南。

实施步骤

1. 启动 Qdrant 容器

在本地运行以下命令启动 Qdrant 服务:

bash
docker run -p 6333:6333 qdrant/qdrant

2. 使用 Python 客户端连接

安装官方 Python 客户端后,通过如下代码连接服务器:

python
from qdrant_client import QdrantClient

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

连接成功后即可通过客户端 API 存储和检索向量点。

使用与配置要点

  • 服务默认监听 6333 端口,客户端通过 url="http://localhost:6333" 连接。
  • REST API 交互式文档见 api.qdrant.tech,OpenAPI 3.0 规范可用于为任意框架或语言生成客户端;也可下载原始 OpenAPI 定义文件。
  • 追求更快生产级搜索时可改用 gRPC 接口。
  • 验证成功:能通过客户端连接并完成向量点的存储与查询即视为跑通。

注意事项与常见问题

  • 安全警告:默认 docker run 启动的是一个不安全部署,没有认证,且对所有网络接口开放。请参考官方 "secure your instance" 安全文档进行加固。
  • 生产部署:上生产前务必阅读官方 installation 与 security 指南。

优缺点

  • ✓ Rust 编写,高负载下快速可靠
  • ✓ 提供多语言官方客户端
  • ✕ 默认部署无认证且对所有网络接口开放

出处

本方案挖掘自开源项目 qdrant/qdrant,方案内容与实施命令均来自其 README 原文。

方案出处
qdrant/qdrant:Qdrant - High-performance, massive-scale Vector Database and Vector Search Engin
34421 star Qdrant - High-performance, massive-scale Vector Database and Vector Search Engine for the next generation of AI. Also available in the cloud https://cloud.qdrant.io/

本方案由真实开源项目挖掘整理,实施命令均来自其 README 原文,安装使用请遵循项目开源协议。