You need to enable JavaScript to run this app.
导航
聚合统计
最近更新时间:2024.12.13 20:45:11首次发布时间:2024.12.13 20:45:11

概述

/index/search/agg 接口用于实现聚合,本页面主要介绍如何对指定 index 检索结果进行聚合统计。
聚合统计能指定字段进行分组聚合,并可添加过滤操作,最终得到相应的聚合统计结果,辅助了解数据分布等情况。

注意

索引需要包含至少一个枚举类型(string、int64或bool类型)的标量索引字段。

请求接口

说明

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

URI

/api/index/search/agg

统一资源标识符

请求方法

POST

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

请求头

Content-Type: application/json

请求消息类型

Authorization: HMAC-SHA256 ***

鉴权

请求参数

参数名

类型

必选

备注

子参数

类型

备注

必选

collection_name/collection_alias

string

collection名

index_name

string

index名

search

map

检索参数

filter

map

过滤条件,使用方式同index检索接口

partition

int64 / string

子索引名,类型与 partition_by 的 field_type一致,字段值对应 partition_by 的 field_value

  • field_type 为 int64,list 时,partition 输入类型为 int64
  • field_type 为 string,list 时,partition 输入类型为 string,格式要求 "^[a-zA-Z0-9._]+$"

不设置默认为"default"

agg

map

聚合参数

op

string

目前仅支持count。使用count算子时,索引中必须至少存在一个string、int64或bool类型的标量索引字段。

field

string

对指定字段名进行聚合。字段类型支持string,int64,bool且必须为标量索引字段。

cond

map,否

类似SQL里group by的having 子句。仅当field字段存在时,才生效。对于count算子,支持gt,表示仅返回大于阈值的结果项。

完整示例

请求消息

示例1:对指定index下数据的数量统计。

{
    "collection_name": "coll_name",
    "index_name": "idx_name",
    "search": {},
    "agg": {
        "op": "count"
    }
}

示例2:对指定索引下数据按条件筛选排除后,针对特定字段进行聚合统计,只返回统计结果大于5的情况。

{
    "collection_name": "coll_name",
    "index_name": "idx_name",
    "search": {
        "filter": {
            "op": "must_not",
            "field": "f_string",
            "conds": ["doc1"]
        }
    },
    "agg": {
        "op": "count",
        "field": "f_string",
        "cond": {
            "gt": 5
        }
    }
}

返回示例

示例1

{
    "code":0,
    "msg":"success",
    "request_id":"02173373312268600000000000000000000ffff0a0048d51718ba"
    "data": {
        "agg_op": "count",
        "group_by_field": "__NONE__",
        "agg_result": {
            "__TOTAL__": 10001
        }
    }
}

示例2

{
    "code":0,
    "msg":"success",
    "request_id":"02173373312268600000000000000000000ffff0a0048d51718ba"
    "data": {
        "agg_op": "count",
        "group_by_field": "f_doc",
        "agg_result": {
            "doc1": 234,
            "doc2": 221
        }
    }
}