QueryVectors

调用QueryVectors接口进行向量相似性检索。

权限说明

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

API

Action

说明

QueryVectors

oss: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

容器

不适用

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

  • 单次长度最大64KB

  • 单次filter指令最多1024

returnDistance

布尔值

false

是否返回相似距离。取值:

  • true

  • false(默认值)

returnMetadata

布尔值

false

是否返回元数据。取值:

  • true

  • false(默认值)

topK

数值

10

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

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)

响应头

此接口仅涉及公共响应头。更多信息,请参见公共HTTP头定义

响应元素

名称

数据类型

是否必选

示例值

vectors

对象数组

/

返回向量列表。如果查询的主键不存在,无报错但不返回当前key结果。

key

字符串

doc-001

向量主键。

父节点:vectors

distance

整型

0.25

向量和查询向量之间的相似距离,值越小说明越相似(仅当returnDistancetrue时返回)。

父节点:vectors

metadata

对象

/

全量元数据(仅当returnMetadatatrue时返回)。

父节点: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
         }
      }
   ]
}