SuperAPI AI 工具集

qdrant-vector-search

数据与分析

查看项目

更新于 10-15 08:33

技能介绍

用途

Qdrant 是一个用 Rust 编写的高性能向量数据库,面向生产环境的 RAG(检索增强生成)与语义搜索。官方建议在以下场景使用:构建要求低延迟的生产级 RAG 系统;需要混合搜索(向量 + 元数据过滤);需要分片/复制的水平扩展;希望私有化部署并完全掌控数据;需要在单条记录中存储多向量(稠密 + 稀疏);构建实时推荐系统。

如果追求更简单的搭建与嵌入式使用,可考虑 Chroma;追求极致原始速度、研究或批处理,可考虑 FAISS;偏好全托管、零运维,可考虑 Pinecone;偏好 GraphQL 与内置向量化器,可考虑 Weaviate。

主要能力

  • Rust 驱动:内存安全、高性能。
  • 丰富的过滤:搜索时可基于任意 payload 字段过滤。
  • 多种向量:每个 point 支持稠密、稀疏、多稠密向量。
  • 量化:标量、乘积、二值量化以节省内存。
  • 分布式:Raft 共识、分片、复制。
  • REST + gRPC:两套 API 功能完全对等。

核心概念包括:Points(数据基本单元 = ID + 向量 + payload)、Collections(向量容器)、距离度量(COSINE、EUCLID、DOT、MANHATTAN)。

使用方式

安装:

# Python 客户端
pip install qdrant-client

# Docker(开发推荐)
docker run -p 6333:6333 -p 6334:6334 qdrant/qdrant

# Docker 带持久化存储
docker run -p 6333:6333 -p 6334:6334 \
    -v $(pwd)/qdrant_storage:/qdrant/storage \
    qdrant/qdrant

基础用法(连接、创建集合、插入、检索):

from qdrant_client import QdrantClient
from qdrant_client.models import Distance, VectorParams, PointStruct

client = QdrantClient(host="localhost", port=6333)

client.create_collection(
    collection_name="documents",
    vectors_config=VectorParams(size=384, distance=Distance.COSINE)
)

client.upsert(
    collection_name="documents",
    points=[
        PointStruct(id=1, vector=[0.1, 0.2], payload={"title": "Doc 1", "category": "tech"}),
        PointStruct(id=2, vector=[0.3, 0.4], payload={"title": "Doc 2", "category": "science"})
    ]
)

results = client.search(
    collection_name="documents",
    query_vector=[0.15, 0.25],
    query_filter={"must": [{"key": "category", "match": {"value": "tech"}}]},
    limit=10
)

文档还给出了:集合 HNSW 配置与距离度量、基础/过滤/批量搜索、与 sentence-transformers、LangChain、LlamaIndex 的 RAG 集成、命名向量与稀疏向量(BM25、SPLADE)多向量支持、标量量化与重打分、payload 索引、Qdrant Cloud 连接、性能调优、最佳实践与常见问题(过滤检索慢、内存不足、连接问题)的处理方式,以及分布式模式、混合搜索、推荐等进阶主题的引用链接。

适用场景

生产级 RAG 检索、语义搜索、实时推荐、需要元数据过滤的向量检索、需要水平扩展或私有化部署的向量存储场景。

限制与说明

  • 具体收费、价格、性能基准与平台细节在所提供的资料中暂未提供,需以官方文档为准。
  • 分布式、混合搜索、推荐等仅以引用形式提及,资料未展开具体内容。

资源

  • GitHub: https://github.com/qdrant/qdrant (22k+ stars)
  • Docs: https://qdrant.tech/documentation/
  • Python Client: https://github.com/qdrant/qdrant-client
  • Cloud: https://cloud.qdrant.io
  • Version: 1.12.0+
  • License: Apache 2.0