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回显

相关推荐
桌面运维家15 小时前
旧电脑跑不动课程软件,VDI云桌面怎样接着用?
运维·服务器·虚拟化·pve·vdi·云桌面
zhang1338308907515 小时前
传统机械三杯式风速传感器易磨损冻堵?CG-88金属超声波风速风向传感器给出免运维方案
运维·服务器·网络·人工智能·自动化
知已难寻16 小时前
第 2 篇 · 云的地基:服务器、存储、网络三大基础设施
运维·服务器·网络·云原生·云计算·负载均衡·1024程序员节
2601_9498477518 小时前
bcrypt.js 跨端三方库仓颉适配全流程
linux·运维·ubuntu
m0_6399069418 小时前
Linux 操作系统入门:目录结构、服务排查常用命令、Shell 脚本基础
linux·运维·后端
今天重构了吗19 小时前
Linux 上 rm -rf 删错了能找回吗
运维·服务器
KaiwuDB19 小时前
KaiwuDB 分布式集群扩缩容,从原理到完整操作踩坑总结
运维·数据库·分布式
codezzzsleep19 小时前
学术汇报 PPT 自动化生成实战指南
运维·自动化·powerpoint
古法老登瞎折腾19 小时前
大数据智能运维实战(九):让 AI 查日志——找到异常,也保留上下文
java·大数据·运维·人工智能·spring ai·mcp
讯捷蓝达20 小时前
IBM V3500存储 双控故障、数据怎么恢复?
运维