开发者社区> 问答> 正文

OpenSearch如何统计aggregate子句?



子句说明


一个关键词查询后可能会找到数以万计的文档,用户不太可能浏览所有的文档来获取自己需要的信息,有些情况下用户感兴趣的可能是一些统计的信息。

语法说明


统计子句格式为:group_key:field, range:number1~number2, agg_fun:func1#func2, max_group:number2, agg_filter:filter_clause, max_group:number

  • group_key:必选参数。field为要进行统计的字段名,必须配置属性字段,目前支持int类及literal类型的字段做统计。
  • agg_fun:必选参数。func可以为count()、sum(id)、max(id)、min(id)四种系统函数,含义分别为:文档个数、对id字段求和、取id字段最大值、取id字段最小值;支持同时进行多个函数的统计,中间用英文井号(#)分隔;sum、max、min的内容支持基本的算术运算;
  • range:表示分段统计,可用于分布统计,只支持单个range参数。表示number1~number2及大于number2的区间情况。不支持string类型的字段分布统计。
  • agg_filter:非必须参数,表示仅统计满足特定条件的文档;
  • agg_sampler_threshold:非必须参数,抽样统计的阈值。表示该值之前的文档会依次统计,该值之后的文档会进行抽样统计;
  • agg_sampler_step:非必须参数,抽样统计的步长。表示从agg_sampler_threshold后的文档将间隔agg_sampler_step个文档统计一次。对于sum和count类型的统计会把阈值后的抽样统计结果最后乘以步长进行估算,估算的结果再加上阈值前的统计结果就是最后的统计结果。
  • max_group:最大返回组数,默认为1000。


注意事项

  1. aggregate为非必选子句;
  2. 在aggregate中出现的字段必须在定义应用结构的时候配置为属性字段;
  3. aggregate结果会在搜索节点facet节点中展示出来,具体值字段名为agg_fun的名字,如sum、count等
  4. aggregate支持多个key的统计,多个统计中间用英文分号(;)分隔。


示例


搜索包含“浙大”的文档,并按照group_id字段进行统计,统计维度包含对price字段进行求和及计算最大值;并对company_id进行统计个数:



展开
收起
轩墨 2017-10-25 11:28:57 3248 0
0 条回答
写回答
取消 提交回答
问答排行榜
最热
最新

相关电子书

更多
《开放搜索统一召回引擎实践》 立即下载
《开放搜索查询分析服务架构分享》 立即下载
《开放搜索在智能化行业搜索和业务增长领域的应用实践》 立即下载