Qdrant 简介
Qdrant 是专为扩展过滤支持而设计的向量相似度搜索引擎和向量数据库,这使得它适用于各种基于神经网络的语义匹配、图像搜索等应用。
Qdrant 使用 Rust 🦀 编写,即使在高负载下也能快速、可靠地工作。
Qdrant 架构
上图展示了 Qdrant 一些主要组件的高级概述,以下是相关术语:
- 集合(Collections):集合是一组命名的点(带有有效负载的向量),您可以在其中进行搜索。同一集合中每个点的向量必须具有相同的维度,并通过单个度量进行比较。命名向量可用于在单个点中包含多个向量,每个向量都可以有自己的维度和度量要求。
- 距离度量(Distance Metrics):这些用于测量向量之间的相似性,必须在创建集合的同时选择它们。度量的选择取决于向量的获取方式,特别是取决于将用于编码新查询的神经网络。
- 点(Points):点是 Qdrant 运行的中心实体,它们由向量和可选的 id 和有效负载组成。
- id:向量的唯一标识符。
- 矢量(Vector):数据的高维表示,例如图像、声音、文档、视频等。
- 有效负载(Payload):有效负载是一个 JSON 对象,其中包含可以添加到向量中的附加数据。
- 存储(Storage):Qdrant 可以使用两种存储选项之一:内存存储(将所有向量存储在 RAM 中,具有最高速度,因为仅需要持久性才需要磁盘访问)或Memmap存储(创建与磁盘上的文件)。
- 客户端:可用于连接到 Qdrant 的编程语言。
Qdrant 单节点安装配置
官方文档:https://qdrant.tech/documentation/quick-start/
Git地址:https://github.com/qdrant/qdrant
1、创建docker-compose.yml文件
# mkdir /opt/qdrant && cd /opt/qdrant
# vim docker-compose.yml
version: '2'
services:
qdrant:
privileged: true
image: qdrant/qdrant:v1.9.4
ports:
- "6333:6333"
- "6334:6334"
volumes:
- "./qdrant_storage:/qdrant/storage"
restart: on-failure
# docker-compose up -d
PS: 参数privileged: true 是因为我是ubuntu系统,本地执行时出现Operation not permitted进程创建受限加的,一般不用加
2、挂载配置文件
默认配置文件目录是没有被挂载出来得,为了修改参数方便,我们需要将目录挂载到本地
# docker ps | grep qdrant
259220a68558 qdrant/qdrant:v1.9.7 "./entrypoint.sh" 8 minutes ago Up 8 minutes 0.0.0.0:6333-6334->6333-6334/tcp qdrant-qdrant-1
# docker cp 259220a68558:/qdrant/config/ ./
# mv config qdrant_config
# docker-compose down
# vim docker-compose.yml
version: '2'
services:
qdrant:
privileged: true
image: qdrant/qdrant:v1.9.7
ports:
- "6333:6333"
- "6334:6334"
volumes:
- "./qdrant_storage:/qdrant/storage"
- "./qdrant_config:/qdrant/config"
restart: on-failure
# docker-compose up -d
3、调整存储模式
默认qdrant 采用磁盘存储的模式,性能上比较慢,如果想提升性能,可以改成全内存模式
修改 qdrant_config/config.yaml 下面的参数
vectors
on_disk 改成false
storage
on_disk_payload 改成false
重启服务:
# docker-compose down
# docker-compose up -d
4、访问方式
REST API:http://ip地址:6333
网页用户界面:http://ip地址:6333/dashboard
GRPC API:http://ip地址:6334
- 本文固定链接: http://www.jiagou.cc/738/
- 转载请注明: 摘星怪 于 架构迷 发表