如何通过HTTP API分组检索Doc

news/2024/12/28 20:59:37/

本文介绍如何通过HTTP API在Collection中进行分组相似性检索。


前提条件

  • 已创建Cluster:创建Cluster。

  • 已获得API-KEY:API-KEY管理。

Method与URL

HTTP

POST https://{Endpoint}/v1/collections/{CollectionName}/query_group_by

使用示例

说明

  1. 需要使用您的api-key替换示例中的YOUR_API_KEY、您的Cluster Endpoint替换示例中的YOUR_CLUSTER_ENDPOINT,代码才能正常运行。

  2. 本示例需要参考分组向量检索提前创建好名称为group_by_demo的Collection,并插入部分数据。

根据向量进行分组相似性检索

Shell

l -XPOST \-H 'dashvector-auth-token: YOUR_API_KEY' \-H 'Content-Type: application/json' \-d '{"vector": [0.1, 0.2, 0.3, 0.4],"group_by_field": "document_id","group_topk": 1,"group_count": 3,"include_vector": true}' https://YOUR_CLUSTER_ENDPOINT/v1/collections/group_by_demo/query_group_by

示例输出

{"code": 0,"request_id": "d6df634a-683d-445e-abe0-d547091d6b3a","message": "Success","output": [{"docs": [{"id": "4","vector": [0.621783971786499,0.5220040082931519,0.8403469920158386,0.995602011680603],"fields": {"document_id": "paper-02","content": "xxxD","chunk_id": 2},"score": 0.028402328}],"group_id": "paper-02"},{"docs": [{"id": "1","vector": [0.26870301365852356,0.8718249797821045,0.6066280007362366,0.6342290043830872],"fields": {"document_id": "paper-01","content": "xxxA","chunk_id": 1},"score": 0.08141637}],"group_id": "paper-01"},{"docs": [{"id": "6","vector": [0.661965012550354,0.730430006980896,0.6105219721794128,0.22164000570774078],"fields": {"document_id": "paper-03","content": "xxxF","chunk_id": 1},"score": 0.2513085}],"group_id": "paper-03"}]
}

根据主键(对应的向量)进行分组相似性检索

Shell

curl -XPOST \-H 'dashvector-auth-token: YOUR_API_KEY' \-H 'Content-Type: application/json' \-d '{"id": "1","group_by_field": "document_id","group_topk": 1,"group_count": 3,"include_vector": true}' https://YOUR_CLUSTER_ENDPOINT/v1/collections/group_by_demo/query_group_by

带过滤条件的分组相似性检索

Shell

curl -XPOST \-H 'dashvector-auth-token: YOUR_API_KEY' \-H 'Content-Type: application/json' \-d '{"filter": "chunk_id > 1","group_by_field": "document_id","group_topk": 1,"group_count": 3,"include_vector": true}' https://YOUR_CLUSTER_ENDPOINT/v1/collections/group_by_demo/query

带有Sparse Vector的分组向量检索

Shell

curl -XPOST \-H 'dashvector-auth-token: YOUR_API_KEY' \-H 'Content-Type: application/json' \-d '{"vector": [0.1, 0.2, 0.3, 0.4],"sparse_vector":{"1":0.4, "10000":0.6, "222222":0.8},"group_by_field": "document_id","group_topk": 1,"group_count": 3,"include_vector": true}' https://YOUR_CLUSTER_ENDPOINT/v1/collections/group_by_demo/query

使用多向量集合的一个向量执行分组检索

curl -XPOST \-H 'dashvector-auth-token: YOUR_API_KEY' \-H 'Content-Type: application/json' \-d '{"vector": [0.1, 0.2, 0.3, 0.4],"group_by_field": "author","group_topk": 1,"group_count": 3,"include_vector": true,"vector_field": "title"
}' https://YOUR_CLUSTER_ENDPOINT/v1/collections/multi_vector_demo/query_group_by# example output
#{
#    "code": 0,
#    "request_id": "b6f4997e-97e0-4d9b-9d3f-0659f4499305",
#    "message": "Success",
#    "output": [
#        {
#            "docs": [
#                {
#                    "id": "2",
#                    "vectors": {
#                        "title": [
#                            0.10000000149011612,
#                            0.20000000298023224,
#                            0.30000001192092896,
#                            0.4000000059604645
#                        ]
#                    },
#                    "fields": {
#                        "author": "zhangsan"
#                    },
#                    "score": 0.0
#                }
#            ],
#            "group_id": "zhangsan"
#        },
#        {
#            "docs": [
#                {
#                    "id": "1",
#                    "vectors": {
#                        "title": [
#                            0.30000001192092896,
#                            0.4000000059604645,
#                            0.5,
#                            0.6000000238418579
#                        ],
#                        "content": [
#                            0.30000001192092896,
#                            0.4000000059604645,
#                            0.5,
#                            0.6000000238418579,
#                            0.699999988079071,
#                            0.800000011920929
#                        ]
#                    },
#                    "fields": {
#                        "author": null
#                    },
#                    "score": 0.16000001
#                }
#            ]
#        }
#    ]
#}
#

入参描述

说明

vectorid两个入参需要二选一使用,并保证其中一个不为空。

参数

Location

类型

必填

说明

{Endpoint}

path

str

Cluster的Endpoint,可在控制台Cluster详情中查看

{CollectionName}

path

str

Collection名称

dashvector-auth-token

header

str

api-key

group_by_field

body

str

按指定字段的值来分组检索,目前不支持schema-free字段

group_count

body

int

最多返回的分组个数,尽力而为参数,一般可以返回group_count个分组。

group_topk

body

int

每个分组返回group_topk条相似性结果,尽力而为参数,优先级低于group_count。

vector

body

array

向量数据

sparse_vector

body

dict

稀疏向量

id

body

str

主键,表示根据主键对应的向量进行相似性检索

filter

body

str

过滤条件,需满足SQL where子句规范,详见

include_vector

body

bool

是否返回向量数据,默认false

output_fields

body

array

返回field的字段名列表,默认返回所有Fields

vector_field

body

str

使用多向量检索的一个向量执行分组检索。

partition

body

str

Partition名称

出参描述

字段

类型

描述

示例

code

int

返回值,参考返回状态码说明

0

message

str

返回消息

success

request_id

str

请求唯一id

19215409-ea66-4db9-8764-26ce2eb5bb99

output

array

分组相似性检索结果,Group列表


http://www.ppmy.cn/news/1558880.html

相关文章

MySQL 查询优化案例分享

在日常开发中,SQL 查询性能直接影响到系统的响应速度和用户体验。随着数据量的增长,慢查询可能成为系统的瓶颈。本文将通过实际案例,分享几种常见的 MySQL 查询优化方法,帮助开发者快速定位和优化慢查询,提升数据库性能…

React 第十九节 useLayoutEffect 用途使用技巧注意事项详解

1、概述 useLayoutEffect 是useEffect 的一个衍生版本,只是他们的执行时机不同 useLayoutEffect 用于在DOM更新执行完成之后,浏览器渲染绘制之前执行,这会阻塞浏览器的渲染; useEffect 的执行时机是在组件首次渲染和更新渲染之后…

Android APP 集成本地大模型 LLM

这篇文章介绍如何在Android项目中集成大模型LLM,并展示大模型 text-to-text 结果。主要依赖如下2项: MediaPipeGemma 2BMediaPipe Google 在2017年发布了 TensorFlow Lite, 它是一个用于在Mobile和IoT上进行 ML 推断的轻量级框架。主要用于将…

【每日学点鸿蒙知识】hap安装报错、APP转移账号、import本地文件、远程包构建问题、访问前端页面方法

1、HarmonyOS 打包生产的hap,安装报错,如何解决? 通过build打包的hap文件,通过hdc进行安装,提示错误,证书信息确认是release。如何解决? release证书无法用于安装。 2、HarmonyOS 普通账户下…

深入解析Android Framework中的android.location包:架构设计、设计模式与系统定制

深入解析Android Framework中的android.location包:架构设计、设计模式与系统定制 目录 引言android.location包概述核心类解析 LocationManagerLocationProviderLocationCriteriaGpsStatusGpsStatus.ListenerLocationListener位置服务的工作原理位置信息的获取与处理GPS状态…

Linux零基础速成篇一(理论+实操)

前言:本教程适合Linux零基础学习,也适合Linux期末考试的小伙伴,从头到尾理论与实操相结合,让你快速对Linux进行了解和掌握。 一、Linux概述 为什么要学习Linux操作系统? 完全免费-开源 任何用户均可下载使用 安全…

STM32 高级 谈一下IPV4/默认网关/子网掩码/DNS服务器/MAC

首先可以通过 winr->输入cmd->输入ipconfig 命令可以查看计算机的各种地址 IPV4:是互联网协议第 4 版(Internet Protocol version 4)所使用的地址。它是一个 32 位的二进制数字,通常被分为 4 个 8 位的部分&#xff…

Python的`turtle`库来模拟满屏烟花效果

以下是使用Python的turtle库来模拟满屏烟花效果的代码示例,运行代码后会在一个图形窗口中呈现出不断绽放的烟花场景,希望你能喜欢哦。 import turtle import random import time# 初始化屏幕 screen = turtle.Screen() screen.bgcolor("black") screen.title(&quo…