Qdrant生产环境部署方法(Docker)

文章目录


一、前言

我这里以docker desktop为例,所以部分路径是windows的


二、安装方式

1.拉取镜像

python 复制代码
docker pull qdrant/qdrant

2. 创建数据目录

python 复制代码
mkdir D:\ProgramData\docker_data\qdrant_data

3. 启动容器

win下

python 复制代码
docker run -d --name my-qdrant -p 6333:6333 -p 6334:6334 -v D:\ProgramData\docker_data\qdrant_data:/qdrant/storage --restart always qdrant/qdrant

linux下改成类似这样

python 复制代码
docker run -d \
--name my-qdrant \
-p 6333:6333 \
-p 6334:6334 \
-v ~/qdrant_data:/qdrant/storage \
--restart always \
qdrant/qdrant

三、测试

  1. 查看容器状态

    python 复制代码
    docker ps
  2. 访问web管理页
    http://localhost:6333/dashboard

  3. 向量库测试

    测试代码

    python 复制代码
    from qdrant_client import QdrantClient
    from qdrant_client.models import Distance, VectorParams, PointStruct
    import numpy as np
    
    # ---------------------- 1. 连接 Qdrant ----------------------
    client = QdrantClient(host="localhost", port=6333)
    print("Qdrant 状态:", client.get_collections())
    
    # ---------------------- 2. 创建集合 ----------------------
    collection_name = "my_first_collection"
    if not client.collection_exists(collection_name):
        client.create_collection(
            collection_name=collection_name,
            vectors_config=VectorParams(size=128, distance=Distance.COSINE)
        )
        print(f"集合 {collection_name} 创建成功")
    else:
        print(f"集合 {collection_name} 已存在")
    
    # ---------------------- 3. 插入数据 ----------------------
    vectors = np.random.rand(10, 128).tolist()
    points = [
        PointStruct(
            id=i,
            vector=vectors[i],
            payload={"text": f"这是第 {i} 条数据", "category": "test"}
        )
        for i in range(10)
    ]
    client.upsert(collection_name=collection_name, points=points)
    print("数据插入成功")
    
    # ---------------------- 4. 向量搜索(新版正确写法) ----------------------
    query_vector = np.random.rand(128).tolist()
    search_results = client.query_points(
        collection_name=collection_name,
        query=query_vector,  # 注意:新版用 query,不是 query_vector
        limit=3
    )
    
    # 打印结果
    print("\n搜索结果:")
    for result in search_results.points:
        print(f"ID: {result.id}, 相似度: {result.score:.4f}, 元数据: {result.payload}")

    命令行输出

    dashboard回显

相关推荐
IT策士2 小时前
第31篇 k8s之Ingress 进阶:TLS、重写与认证
云原生·容器·kubernetes
STDD2 小时前
VictoriaLogs:轻量级日志存储方案,Loki 的高效替代
运维·jenkins
川石课堂软件测试2 小时前
作为一名测试工程师如何学习Kubernetes(k8s)技能
学习·测试工具·容器·职场和发展·kubernetes·测试用例·harmonyos
枳实-叶2 小时前
【Linux驱动开发】第18天:I2C驱动深度解析
linux·运维·驱动开发
shandianchengzi2 小时前
【记录】Ubuntu|Ubuntu 26.04 笔记本耗电过快,排查 省电过程
linux·运维·ubuntu
一叶星殇2 小时前
日志成海,何以检索:Serilog 解锁 .NET 日志可查询新范式
运维·服务器
企服AI产品测评局2 小时前
AI Agent实测:Agent Store现成应用如何重塑企业自动化?
运维·人工智能·ai·chatgpt·自动化
Irene19912 小时前
(AI总结版)Docker + HBase 安装全过程总结(WSL2 + Win11)
docker·hbase
上海云盾安全满满2 小时前
服务器不稳定,丢包有哪些原因?
运维·服务器
陳10302 小时前
Linux:信号
linux·运维·服务器