开发者社区> 问答> 正文

OpenSearch行业算法版aggregate子句用法(group by)

已解决

OpenSearch行业算法版aggregate子句用法(group by)

展开
收起
提个问题 2024-06-11 15:13:59 13 0
1 条回答
写回答
取消 提交回答
  • 开发者社区问答官方账号
    官方回答
    采纳回答
    语法

    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)#max(price);group_key:company_id,agg_fun:count()
    • 抽样: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*。
      具体报错信息请查看错误码文档
    2024-06-11 15:14:00
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

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