Qdrant 快速入门 :数据模型介绍

Qdrant 的核心数据模型是:Collection(集合)包含多个 Point(数据点),每个 Point 由 ID、Vector(向量)和可选的 Payload(附加数据)组成。

模型 含义 类比与示例
Collection 存放一组 Point,定义向量维度、相似度计算方式等配置 类似一张表,例如商品集合 products
Point 一条独立的数据记录,是写入、查询、更新和删除的基本单位 一个商品
ID Point 在当前 Collection 内的唯一标识,支持无符号 64 位整数或 UUID 1001
Vector 内容的数值表示,用于相似度检索 商品描述经过 Embedding 模型生成的向量
Payload 附着在 Point 上的 JSON 数据,用于保存业务信息和条件过滤 商品名称、分类、价格、是否有货

以上结构参见 Collection 文档和 Point 文档。
#mermaid-svg-WARazuEg3SHlKW39{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}@keyframes edge-animation-frame{from{stroke-dashoffset:0;}}@keyframes dash{to{stroke-dashoffset:0;}}#mermaid-svg-WARazuEg3SHlKW39 .edge-animation-slow{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 50s linear infinite;stroke-linecap:round;}#mermaid-svg-WARazuEg3SHlKW39 .edge-animation-fast{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 20s linear infinite;stroke-linecap:round;}#mermaid-svg-WARazuEg3SHlKW39 .error-icon{fill:#552222;}#mermaid-svg-WARazuEg3SHlKW39 .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-WARazuEg3SHlKW39 .edge-thickness-normal{stroke-width:1px;}#mermaid-svg-WARazuEg3SHlKW39 .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-WARazuEg3SHlKW39 .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-WARazuEg3SHlKW39 .edge-thickness-invisible{stroke-width:0;fill:none;}#mermaid-svg-WARazuEg3SHlKW39 .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-WARazuEg3SHlKW39 .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-WARazuEg3SHlKW39 .marker{fill:#333333;stroke:#333333;}#mermaid-svg-WARazuEg3SHlKW39 .marker.cross{stroke:#333333;}#mermaid-svg-WARazuEg3SHlKW39 svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-WARazuEg3SHlKW39 p{margin:0;}#mermaid-svg-WARazuEg3SHlKW39 .label{font-family:"trebuchet ms",verdana,arial,sans-serif;color:#333;}#mermaid-svg-WARazuEg3SHlKW39 .cluster-label text{fill:#333;}#mermaid-svg-WARazuEg3SHlKW39 .cluster-label span{color:#333;}#mermaid-svg-WARazuEg3SHlKW39 .cluster-label span p{background-color:transparent;}#mermaid-svg-WARazuEg3SHlKW39 .label text,#mermaid-svg-WARazuEg3SHlKW39 span{fill:#333;color:#333;}#mermaid-svg-WARazuEg3SHlKW39 .node rect,#mermaid-svg-WARazuEg3SHlKW39 .node circle,#mermaid-svg-WARazuEg3SHlKW39 .node ellipse,#mermaid-svg-WARazuEg3SHlKW39 .node polygon,#mermaid-svg-WARazuEg3SHlKW39 .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-WARazuEg3SHlKW39 .rough-node .label text,#mermaid-svg-WARazuEg3SHlKW39 .node .label text,#mermaid-svg-WARazuEg3SHlKW39 .image-shape .label,#mermaid-svg-WARazuEg3SHlKW39 .icon-shape .label{text-anchor:middle;}#mermaid-svg-WARazuEg3SHlKW39 .node .katex path{fill:#000;stroke:#000;stroke-width:1px;}#mermaid-svg-WARazuEg3SHlKW39 .rough-node .label,#mermaid-svg-WARazuEg3SHlKW39 .node .label,#mermaid-svg-WARazuEg3SHlKW39 .image-shape .label,#mermaid-svg-WARazuEg3SHlKW39 .icon-shape .label{text-align:center;}#mermaid-svg-WARazuEg3SHlKW39 .node.clickable{cursor:pointer;}#mermaid-svg-WARazuEg3SHlKW39 .root .anchor path{fill:#333333!important;stroke-width:0;stroke:#333333;}#mermaid-svg-WARazuEg3SHlKW39 .arrowheadPath{fill:#333333;}#mermaid-svg-WARazuEg3SHlKW39 .edgePath .path{stroke:#333333;stroke-width:2.0px;}#mermaid-svg-WARazuEg3SHlKW39 .flowchart-link{stroke:#333333;fill:none;}#mermaid-svg-WARazuEg3SHlKW39 .edgeLabel{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-WARazuEg3SHlKW39 .edgeLabel p{background-color:rgba(232,232,232, 0.8);}#mermaid-svg-WARazuEg3SHlKW39 .edgeLabel rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-WARazuEg3SHlKW39 .labelBkg{background-color:rgba(232, 232, 232, 0.5);}#mermaid-svg-WARazuEg3SHlKW39 .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#mermaid-svg-WARazuEg3SHlKW39 .cluster text{fill:#333;}#mermaid-svg-WARazuEg3SHlKW39 .cluster span{color:#333;}#mermaid-svg-WARazuEg3SHlKW39 div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:12px;background:hsl(80, 100%, 96.2745098039%);border:1px solid #aaaa33;border-radius:2px;pointer-events:none;z-index:100;}#mermaid-svg-WARazuEg3SHlKW39 .flowchartTitleText{text-anchor:middle;font-size:18px;fill:#333;}#mermaid-svg-WARazuEg3SHlKW39 rect.text{fill:none;stroke-width:0;}#mermaid-svg-WARazuEg3SHlKW39 .icon-shape,#mermaid-svg-WARazuEg3SHlKW39 .image-shape{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-WARazuEg3SHlKW39 .icon-shape p,#mermaid-svg-WARazuEg3SHlKW39 .image-shape p{background-color:rgba(232,232,232, 0.8);padding:2px;}#mermaid-svg-WARazuEg3SHlKW39 .icon-shape .label rect,#mermaid-svg-WARazuEg3SHlKW39 .image-shape .label rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-WARazuEg3SHlKW39 .label-icon{display:inline-block;height:1em;overflow:visible;vertical-align:-0.125em;}#mermaid-svg-WARazuEg3SHlKW39 .node .label-icon path{fill:currentColor;stroke:revert;stroke-width:revert;}#mermaid-svg-WARazuEg3SHlKW39 :root{--mermaid-font-family:"trebuchet ms",verdana,arial,sans-serif;} Qdrant
Collection:products
Collection:articles
Point:1001
Point:1002
其他 Point
ID

1001
Vector

用于相似度检索
Payload

业务数据与过滤条件
name:无线降噪耳机
category:耳机
price:399

例如,products 集合中的一个 Point 可以是:

json 复制代码
{
  "id": 1001,
  "vector": [0.12, -0.35, 0.88, 0.21],
  "payload": {
    "name": "无线降噪耳机",
    "description": "支持主动降噪,适合通勤使用",
    "category": "耳机",
    "price": 399,
    "in_stock": true,
    "tags": ["无线", "降噪", "通勤"]
  }
}

这是一个示意商品,向量数值也是示意值:

  • id :用于精确定位这条记录,例如读取或删除商品 1001。
  • vector:用于寻找语义相似的商品。这里使用 4 维向量,因此集合的对应向量配置也必须是 4 维。
  • payload :保存商品信息。检索时可限定 category = "耳机"、price ≤ 500、in_stock = true,再结合向量相似度寻找符合要求的商品。Payload 文档

一个 Point 也可以包含多个命名向量,例如同一个商品分别保存文字特征和图片特征:

json 复制代码
{
  "id": 1001,
  "vector": {
    "text": [0.12, -0.35, 0.88, 0.21],
    "image": [0.61, 0.23, -0.14]
  },
  "payload": {
    "name": "无线降噪耳机",
    "category": "耳机"
  }
}

此时需要在 Collection 中分别配置 text 为 4 维、image 为 3 维;检索时指定使用哪一种向量。不同命名向量可以采用不同的维度和距离算法。命名向量说明

底层还有 Shard(分片)和 Segment(存储段) :Collection 的数据划分到 Shard,每个本地分片副本内部包含多个 Segment;Segment 保存向量、Payload 和相关索引。它们属于存储组织层,业务接口主要围绕 Collection 和 Point 操作。架构说明、存储说明

相关推荐
高洁017 分钟前
具身智能感知系统底层原理
人工智能·python·深度学习·机器学习·transformer
qq_白羊座8 分钟前
Hologres / PostgreSQL jsonb 常用函数 & 操作符对照表
数据库·postgresql
千桐科技9 分钟前
qData 数据中台专业版功能解析:告别 Excel 与 SQL 拼凑,打通系统合并的可追踪数据链路
数据库·sql·excel·qdata
趣味科技v15 分钟前
重约1公斤、最厚12.7毫米,价格却回到2015年?
人工智能·笔记本电脑
惊讶的猫15 分钟前
MSA-listen
人工智能
const_qiu17 分钟前
第四章 05:4.5 Multi-Agent —— 五个专职智能体协作
java·人工智能
鬼手点金28 分钟前
构建有效 Agent 的核心原则
java·人工智能·git·学习·自动化
小星星_ios33 分钟前
从 3Blue1Brown 到 NumPy:手写一个神经网络训练 MNIST
人工智能·python·神经网络
老牛日常随笔34 分钟前
Google把Android测试搬进AI对话:ARTEMIS如何用自然语言操作你的手机
android·人工智能·智能手机
信可维34 分钟前
AI 读 Word 表格总读错?先查合并单元格和表头这 3 处
开发语言·人工智能·c#·word·软件工程