You need to enable JavaScript to run this app.
导航
主键过滤
最近更新时间:2025.01.10 19:13:06首次发布时间:2025.01.10 19:13:06

您可以通过主键过滤能力在向量数据库中通过主键限定结果范围。

说明

主键过滤是通用检索能力,您可以将其应用在基本向量检索稠密稀疏混合检索等检索方式中。

请求接口

说明

请求向量数据库 VikingDB 的 OpenAPI 接口时,需要构造签名进行鉴权,详细的 OpenAPI 签名调用方法请参见 API签名调用指南

URI

/api/index/search

统一资源标识符

请求方法

POST

客户端对向量数据库服务器请求的操作类型

请求头

Content-Type: application/json

请求消息类型

Authorization: HMAC-SHA256 ***

鉴权

请求参数

在基本向量检索的基础上,您可以使用 primary_key_in, primary_key_not_in 子参数进行过滤。

参数

子参数

类型

是否必选

默认值

参数说明

search

primary_key_in

list<int64>或list<string>

设定此参数,会限定仅在主键列表范围内进行检索。
传入空列表和不传此参数效果相同。

primary_key_not_in

list<int64>或list<string>

设定此参数,将把主键列表范围内的数据从检索结果中排除 。

响应消息

参数

参数说明

code

状态码

message

返回信息

request_id

标识每个请求的唯一标识符

data

检索结果,标量过滤检索会返回检索到的主键、score、fields。

状态码说明

状态码

http状态码

返回信息

状态码说明

0

200

drop index success

Index 检索成功。

1000008

400

index not exist

指定的 Index 不存在。

1000003

400

invalid request

非法参数:

  • 缺失必选参数。
  • 缺乏检索输入。
  • 不满足约束条件。

1000001

401

unauthorized

请求头中缺乏鉴权信息。

1000002

403

no permission

权限不足。

1000016

400

invalid vectors for index_recall

输入的向量格式不合法。

1000029

429

请求已达上限, 请调整CPU核数

需要调大 cpu_quota

完整示例

请求消息

curl -i -X POST \
  -H 'Content-Type: application/json' \
  -H 'Authorization: HMAC-SHA256 ***' \
  https://api-vikingdb.volces.com/api/index/search \
  -d '{
    "collection_name": "test_name",
    "index_name": "index_test",
    "search": {
        "order_by_vector": {
            "vectors": [
                [0.1, 0.2, 0.3......0.9], 
            ], 
        }, 
        "limit": 2,   
        "primary_key_in":[1,2,3,4,5,6], //限定仅在该主键列表范围内检索
        "primary_key_not_in":[7,8],  //限定不在该主键列表范围内检索
        "partition": "default"     //子索引名称,对应 field 的值
    }
}'

响应消息

执行成功返回:

HTTP/1.1 200 OK
Content-Length: 43
Content-Type: application/json
 
{
    "code":0,
    "msg":"search success",
    "request_id":"021695029757920fd001de6666600000000000000000002569b8f",
    "data": [
        [
            {
                "id": 1,
                "score": 0.99,
                "fields": {
                    "time": 1690529704,
                    "author": "zhangsan"
                } 
            },
            {
                "id": 2,
                "score": 0.98,
                "fields": {
                    "time": 1690529701,
                    "author": "lisi"
                } 
            }
        ]
    ]
}

执行失败返回:

HTTP/1.1 400 OK
Content-Length: 43
Content-Type: application/json
 
{"code":1000008, "msg":"index not exist", "request_id":"021695029757920fd001de6666600000000000000000002569b8f"}