You need to enable JavaScript to run this app.
文档中心
向量数据库VikingDB

向量数据库VikingDB

复制全文
下载 pdf
检索(Search)
SearchAgg
复制全文
下载 pdf
SearchAgg

概述

SearchAgg 用于实现聚合,本页面主要介绍如何对指定 index 检索结果进行聚合统计。
聚合统计能指定字段进行分组聚合,并可添加过滤操作,最终得到相应的聚合统计结果,辅助了解数据分布等情况。
索引需要包含至少一个枚举类型(string、int64或bool类型)的标量索引字段。

请求参数

参数名

类型

必选

备注

子参数

类型

备注

必选

agg

map

是

聚合参数

op

string

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

是

field

string

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

否

cond

map

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

否

示例

运行示例前,请完成以下准备:

  • 在 Go 项目中安装并引入 VikingDB SDK;将完整代码保存为 main.go 后执行 go run main.go。
  • 将 <YOUR_HOST>、<YOUR_REGION> 和 <YOUR_SCHEME> 替换为地域和访问域名中与实例一致的服务地址、地域和协议。
  • 将 <YOUR_AK>、<YOUR_SK> 替换为火山引擎控制台“密钥管理”中创建的 Access Key ID 和 Secret Access Key;请勿把真实凭证提交到代码仓库。
  • 将 Collection、Index、Task 等资源占位符替换为控制台中对应资源的名称或接口返回的 ID。若示例包含 TOS 路径,请从 TOS 控制台确认桶名和对象路径,并使用 tos://<YOUR_BUCKET_NAME>/<YOUR_OBJECT_KEY> 或文档要求的路径格式。

请求参数

// 获取指定索引,程序初始化时调用即可,无需重复调用
indexClient := vikingdb.NewIndexClient("<YOUR_COLLECTION_NAME>", "<YOUR_INDEX_NAME>", "api-vikingdb.volces.com", "cn-beijing", "<YOUR_AK>", "<YOUR_SK>", "http")

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

searchAggOpt := vikingdb.NewSearchAggOptions().
                SetAgg(map[string]interface{}{
                        "op":    "count"
                })
aggResult, err := indexClient.SearchAgg(searchAggOpt)
        if err != nil {
                panic(err)
        }
fmt.Println(aggResult.AggOp)
fmt.Println(aggResult.GroupByField)
fmt.Println(aggResult.AggResult)

示例2:对指定索引下数据按条件筛选排除后,针对特定字段进行聚合统计。

searchAggOpt := vikingdb.NewSearchAggOptions().
                SetFilter(map[string]interface{}{
                        "op":    "range",
                        "field": "salary",
                        "gt":    3000,
                }).
                SetAgg(map[string]interface{}{
                        "op":    "count",
                        "field": "age",
                        "gt":    30,
                })
aggResult, err := indexClient.SearchAgg(searchAggOpt)
        if err != nil {
                panic(err)
        }
fmt.Println(aggResult.AggOp)
fmt.Println(aggResult.GroupByField)
fmt.Println(aggResult.AggResult)

返回值

Go调用执行上面的任务,返回 List 。Data 实例包含的属性如下表所示。

属性

说明

AggOp

算子类型

GroupByField

请求返回中的 fields 字段,即用哪个字段进行聚合的

AggResult

聚合处理的结果值

最近更新时间:2026.09.08 15:30:58
这个页面对您有帮助吗?
有用
有用
无用
无用