You need to enable JavaScript to run this app.
导航
searchAgg
最近更新时间:2025.04.22 11:14:23首次发布时间:2025.04.02 11:15:13
我的收藏
有用
有用
无用
无用

概述

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

注意

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

请求参数

请求参数是 SearchAggParam,SearchAggParam 实例包含的参数如下表所示。

参数名

类型

必选

备注

子参数

类型

备注

必选

agg

map

聚合参数

op

string

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

field

string

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

cond

map

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

示例

请求参数

// 获取指定索引,程序初始化时调用即可,无需重复调用
Index index = vikingDBService.getIndex("javaSDKTest", "test_index");

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

Map<String, Object> agg = new HashMap<>();
agg.put("op", "count");
SearchAggResult result = index.searchAgg(new SearchAggParam()
                .setAgg(agg)
                .build());
System.out.println(result);

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

Map<String, Object> agg = new HashMap<>();
agg.put("op", "count");
agg.put("field", "age");
Map<String, Object> filter = new HashMap<>();
filter.put("op", "range");
filter.put("field", "salary");
filter.put("gt", 3000);
SearchAggResult result = index.searchAgg(new SearchAggParam()
                .setAgg(agg)
                .setFilter(filter)
                .build());
System.out.println(result);

返回值

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

属性

说明

aggOp

算子类型

groupByField

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

aggResult

聚合处理的结果值