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 ≤ 500in_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 操作。架构说明存储说明

相关推荐
z落落1 小时前
C#简易聊天室(服务器+客户端)
运维·服务器·c#
开开心心就好1 小时前
免费桌签打印工具,支持批量导入名字
前端·javascript·人工智能·docker·jupyter·智能手机·语音识别
信安IT租赁1 小时前
本地化部署的AI营销CRM:基于事件驱动的全流程自动化状态机实践
大数据·人工智能·软件工程
IT_陈寒1 小时前
明明设了默认值,为什么我的JavaScript函数参数还是undefined?
前端·人工智能·后端
cxr8281 小时前
如何彻底解决AI杜撰编造假文献的问题
人工智能·智能体
孤狼warrior1 小时前
SCTR 五次失败的安全 BN 路由器
人工智能·python·深度学习·算法·安全·yolo
AgentMaster1 小时前
元数据、血缘、质量、安全四大模块能力拆解,数据治理方案对比:4 种技术路线深度评测
大数据·数据库·数据仓库·人工智能·原型模式
霸道流氓气质1 小时前
Spring AI vs Spring AI Alibaba:技术选型与平滑迁移策略
java·人工智能·spring
艾莉丝努力练剑1 小时前
【AI大模型接入SDK】Ollama本地大语言模型部署
c++·人工智能·语言模型·自然语言处理·面试