query-vectors

通过query-vectors命令进行向量相似性检索。

权限说明

阿里云账号默认拥有全部权限。阿里云账号下的RAM用户或RAM角色默认没有任何权限,需要阿里云账号或账号管理员通过RAM PolicyBucket Policy授予操作权限。

API

Action

说明

QueryVectors

oss:QueryVectors

查询向量数据。

命令格式

ossutil vectors-api query-vectors --bucket value --index-name value --query-vector value --top-k value  [flags]

参数说明

参数

类型

说明

--bucket

string

向量Bucket名称。

--index-name

string

索引名称。

--query-vector

string

查询向量,JSON格式,维度必须与向量索引的维度相同。

--top-k

int

返回最相似的K个向量,支持1~30。

--filter

string

通过元数据对查询数据进行过滤。

  • 单次长度最大64KB

  • 单次filter指令最多1024

--return-distance

/

是否返回相似距离,留空或设置为 true 均表示开启。

--return-metadata

/

是否返回元数据,留空或设置为 true 均表示开启。

说明

Filter操作符

操作符

支持类型

描述

$eq

String, Number, Boolean

精确匹配(用于单个值)。当与数组类型的元数据进行比较时,如果输入值能匹配数组中的任意一个元素,则返回true。

$ne

String, Number, Boolean

不等于

$gt

Number

大于

$gte

Number

大于或等于

$lt

Number

小于

$lte

Number

小于或等于

$in

Non-empty array of primitives

匹配数组中的任意一个值(类似于SQLIN操作)

$nin

Non-empty array of primitives

不匹配数组中的任何一个值(类似于SQLNOT IN操作)

$exists

Boolean

检查字段是否存在

$and

Non-empty array of filters

多条件判断与(AND)

$or

Non-empty array of filters

多条件判断或(OR)

使用示例

在名为examplebucket的向量Bucket中名为 index 的向量索引里,typecomedydocumentary的向量中与查询向量最相似的前 10 条。

ossutil vectors-api query-vectors --bucket examplebucket --index-name index --filter "{\"$and\":[{\"type\":{\"$in\":[\"comedy\",\"documentary\"]}}]}" --query-vector "{\"float32\":[32]}" --top-k 10