语法:
aggregate=group_key:field, range:number1~number2, agg_fun:func1#func2, max_group:number2, agg_filter:filter_clause, max_group:number
参数介绍:
group_key:field为要进行统计的字段名,【必选参数;field必须配置属性字段】。
agg_fun:func可以为count()、sum(id)、max(id)、min(id)四种系统函数【必选参数】。
range:表示分段统计,可用于分布统计,只支持单个range参数。【非必选,不支持string类型】。
agg_filter:表示仅统计满足特定条件的文档【非必须参数】。
agg_sampler_threshold:抽样统计的阈值【非必须参数】。
agg_sampler_step:抽样统计的步长【非必须参数】。
max_group:最大返回组数,默认为1000。【非必须参数】。
常见示例:
抽样:aggregate=group_key:group_id,agg_fun:sum(price), agg_sampler_threshold:10000, agg_sampler_step:5
range:aggregate=group_key:group_id,agg_fun:count(),range:10~50
agg_filter使用:aggregate=group_key:group_id,agg_fun:max(hits+replies),agg_filter:create_timestamp>1423456781
注意:
在aggregate子句使用的字段都需要配置为属性字段。
统计子句中展示facet部分,需设置config子句中的format为fulljson格式。
目前暂不支持将统计后的结果二次排序或者过滤,聚合后的总数目前只能在召回的结果里自行处理聚合总数。
受引擎性能影响,aggregate统计子句仅能保证10w的召回量下的文档数统计准确,超过10w的文档数统计不保证准确。
aggregate不支持二次分组 (如果想二次分组,只能自行实现)。
aggregate不支持嵌套使用,多aggreate子句是分开统计的。
opensearch支持group by,然后count*。