调用QueryVectors接口进行向量相似性检索。
权限说明
阿里云账号默认拥有全部权限。阿里云账号下的RAM用户或RAM角色默认没有任何权限,需要阿里云账号或账号管理员通过RAM Policy或Bucket Policy授予操作权限。
API | Action | 说明 |
QueryVectors |
| 查询向量数据。 |
请求语法
POST /?queryVectors HTTP/1.1
Host: exampebucket-123***456.cn-hangzhou.oss-vectors.aliyuncs.com
Date: GMT Date
Authorization: SignatureValue
Content-type: application/json
{
"filter": {
"$and": [{
"type": {
"$in": ["comedy", "documentary"]
}
}, {
"year": {
"$gte": 2020
}
}]
},
"indexName": "string",
"queryVector": {
"float32":[float]
},
"returnDistance": boolean,
"returnMetadata": boolean,
"topK": int
}
请求头
此接口仅涉及公共请求头。更多信息,请参见公共HTTP头定义。
请求参数
名称 | 数据类型 | 是否必选 | 示例值 | 描述 |
indexName | 字符串 | 是 | my-vector-index | 索引名称。 |
queryVector | 容器 | 是 | 不适用 | 查询向量,维度必须与向量索引的维度相同。 |
filter | 容器 | 否 | 不适用 | 通过元数据对查询数据进行过滤。
|
returnDistance | 布尔值 | 否 | false | 是否返回相似距离。取值:
|
returnMetadata | 布尔值 | 否 | false | 是否返回元数据。取值:
|
topK | 数值 | 是 | 10 | 返回最相似的K个向量,支持1~30。 |
Filter操作符
操作符 | 支持类型 | 描述 |
| String, Number, Boolean | 精确匹配(用于单个值)。当与数组类型的元数据进行比较时,如果输入值能匹配数组中的任意一个元素,则返回true。 |
| String, Number, Boolean | 不等于 |
| Number | 大于 |
| Number | 大于或等于 |
| Number | 小于 |
| Number | 小于或等于 |
| Non-empty array of primitives | 匹配数组中的任意一个值(类似于SQL的 |
| Non-empty array of primitives | 不匹配数组中的任何一个值(类似于SQL的 |
| Boolean | 检查字段是否存在 |
| Non-empty array of filters | 多条件判断与(AND) |
| Non-empty array of filters | 多条件判断或(OR) |
响应头
此接口仅涉及公共响应头。更多信息,请参见公共HTTP头定义。
响应元素
名称 | 数据类型 | 是否必选 | 示例值 |
vectors | 对象数组 | / | 返回向量列表。如果查询的主键不存在,无报错但不返回当前key结果。 |
key | 字符串 | doc-001 | 向量主键。 父节点:vectors |
distance | 整型 | 0.25 | 向量和查询向量之间的相似距离,值越小说明越相似(仅当returnDistance为true时返回)。 父节点:vectors |
metadata | 对象 | / | 全量元数据(仅当returnMetadata为true时返回)。 父节点:vectors |
示例
请求示例
POST /?queryVectors HTTP/1.1
Host: exampebucket-123***456.cn-hangzhou.oss-vectors.aliyuncs.com
Date: Thu, 17 Apr 2025 01:33:47 GMT
Authorization: OSS4-HMAC-SHA256 Credential=LTAI********************/20250417/cn-hangzhou/oss/aliyun_v4_request,Signature=a7c3554c729d71929e0b84489addee6b2e8d5cb48595adfc51868c299c0c218
Content-type: application/json
{
"filter": {
"$and": [{
"category": {
"$in": ["technology", "science"]
}
}, {
"year": {
"$gte": 2020
}
}]
},
"indexName": "my-vector-index",
"queryVector": {
"float32": [0.15, 0.25, 0.35, 0.45, 0.55]
},
"returnDistance": true,
"returnMetadata": true,
"topK": 5
}
返回示例
HTTP/1.1 200 OK
x-oss-request-id: 534B371674E88A4D8906****
Date: Thu, 17 Apr 2025 01:33:47 GMT
Connection: keep-alive
Server: AliyunOSS
Content-type: application/json
{
"vectors": [
{
"distance": 0.12,
"key": "doc-001",
"metadata": {
"category": ["technology", "ai"],
"title": "Introduction to Vector Search",
"year": 2024
}
},
{
"distance": 0.25,
"key": "doc-003",
"metadata": {
"category": ["science"],
"title": "Advanced Vector Operations",
"year": 2023
}
}
]
}