【问题标题】:How to do sum + cardinality together in aggregation in Elastic search, like sum(distinct target) with distinct( sum(amount)))如何在弹性搜索的聚合中一起做 sum + cardinality,比如 sum(distinct target) 和 distinct(sum(amount)))
【发布时间】:2020-05-14 09:25:32
【问题描述】:

数据表:

目标金额

10 10000

10 10000

15 12000

15 12000

预期输出是:

目标金额

1 10000

1 12000

我想在弹性搜索中实现上述聚合结果。 像下面这样的东西,但基数和总和不能一起使用......

“附件”:{ “日期直方图”:{ "field": "invoicedt", “间隔”:“周”, "格式": "Y-MM-dd:w", “键控”:真 }, “聚合”:{ “净额”: { “总和”:{ “字段”:“netamt” } }, “distinct_trknumber”:{ “基数”:{ “领域”:“目标” }, “总和”:{ “字段”:“金额” } }
} }

【问题讨论】:

  • 你希望得到iPhone, 25, 46000 吗?
  • 鉴于您显示的表格,您是否希望得到iPhone, 25, 46000 的结果?
  • 最好将所有这些直接添加到您的问题中,这样会更清晰
  • 嗨,我希望你现在能理解我的问题,在描述的表格中,我试图获取不同目标的计数,除了金额和票据金额只考虑一次目标。
  • @AshaLodhi 假设您的数据是 10 10000、10 10000、10 12000。输出会是什么?

标签: elasticsearch elasticsearch-5


【解决方案1】:

术语聚合可用于获得不同的目标和数量

查询:

{
  "size": 0, 
  "aggs": {
    "targets": {
      "terms": {
        "field": "target",
        "size": 10
      },
      "aggs": {
        "amount": {
          "terms": {
            "field": "amount",
            "size": 10
          },
          "aggs": {
            "count": {
              "cardinality": {
                "field": "amount"
              }
            }
          }
        }
      }
    }
  }
}

结果:

"aggregations" : {
    "targets" : {
      "doc_count_error_upper_bound" : 0,
      "sum_other_doc_count" : 0,
      "buckets" : [
        {
          "key" : 10,
          "doc_count" : 2,
          "amount" : {
            "doc_count_error_upper_bound" : 0,
            "sum_other_doc_count" : 0,
            "buckets" : [
              {
                "key" : 10000,
                "doc_count" : 2,
                "count" : {
                  "value" : 1
                }
              }
            ]
          }
        },
        {
          "key" : 15,
          "doc_count" : 2,
          "amount" : {
            "doc_count_error_upper_bound" : 0,
            "sum_other_doc_count" : 0,
            "buckets" : [
              {
                "key" : 12000,
                "doc_count" : 2,
                "count" : {
                  "value" : 1
                }
              }
            ]
          }
        }
      ]
    }
  }

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-04-01
    • 2023-01-12
    • 1970-01-01
    • 2023-04-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多