首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用elastic4s的Elasticsearch聚合组

使用elastic4s的Elasticsearch聚合组
EN

Stack Overflow用户
提问于 2018-08-18 12:51:37
回答 1查看 808关注 0票数 0

我想在Elasticsearch中查询按产品名称分组的销售总额。

我如何使用elastic4s实现这一目标?

代码语言:javascript
运行
复制
client.execute {
      search ("sales"/ "sales_type")
        .query {rangeQuery("date") gte "01-01-2018"   lte "31-12-2018" }
          .aggs { termsAgg("s1","product_name")}
             .aggs  (sumAgg("sums","total_sum"))
}

目前,我的代码只是在给定的日期范围内进行汇总,而不是按产品名称分组。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-06-02 12:54:43

无论如何,你可能已经找到了答案,但这是我的价值2p,对于任何其他人来说.您可能希望在product_name上使用子聚合,而不是在整个数据集中使用第二次聚合。

类似的内容(未经测试的代码,但基于我的一个项目的工作部分):

代码语言:javascript
运行
复制
.query {rangeQuery("date") gte "01-01-2018"   lte "31-12-2018" }
  .aggs { termsAgg("s1","product_name").subAggregations(
             sumAgg("sums","total_sum")
          )
        }

结果是一堆嵌套的Map[String,Any],需要进行一些排序,但是一些日志/打印语句和一些尝试和错误为我解决了问题。

参考资料在这里:https://github.com/guardian/archivehunter/blob/47372d55d458cfe31e5d9809910cc5d9a4bbb9bf/app/controllers/SearchController.scala#L203,在这种情况下,我正在处理它,以便在浏览器前端使用ChartJS呈现。

很抱歉简短,但我现在正忙着呢,没多久可发了:)

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51908862

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档