0

以下映射在使用另一个字段对文档进行分组的字段上的多个级别上聚合。

映射:

 {
   'predictions': {
      'properties': {
              'Company':{'type':'string'},
              'TxnsId':{'type':'string'},
              'Emp':{'type':'string'},
              'Amount':{'type':'float'},
              'Cash/online':{'type':'string'},
              'items':{'type':'float'},
              'timestamp':{'type':'date'}
             }
          }
      }

我的要求有点复杂,我需要

  1. 对于每个 Emp(获取不同的员工)
  2. 检查是在线交易还是现金交易
  3. 按范围为 0-10,11-20,21-30...的项目分组
  4. 合计金额

最终输出如下:

>Emp-online-range-Amount       
>a-online-(0-10)-1240$    
>a-online-(21-30)-3543$    
>b-online-(0-10)-2345$    
>b-online-(11-20)-3456$ 
4

1 回答 1

0

像这样的东西应该可以完成这项工作:

{
  "size": 0,
  "aggs": {
    "by_emp": {
      "terms": {
        "field": "Emp"
      },
      "aggs": {
        "cash_online": {
          "filters": {
            "filters": {
              "cashed": {
                "term": {
                  "Cash/online": "cached"
                }
              },
              "online": {
                "term": {
                  "Cash/online": "online"
                }
              }
            }
          },
          "aggs": {
            "ranges": {
              "range": {
                "field": "items",
                "ranges": [
                  {
                    "from": 0,
                    "to": 11
                  },
                  {
                    "from": 11,
                    "to": 21
                  },
                  {
                    "from": 21,
                    "to": 31
                  }
                ]
              },
              "aggs": {
                "total": {
                  "sum": {
                    "field": "Amount"
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}
于 2016-07-25T06:24:22.950 回答