来自给定值的数组的ElasticSearch聚合

时间:2016-06-14 12:48:07

标签: elasticsearch

我需要在一个查询中从具有id的给定数组聚合。解释如下 -

我有一个像

这样的sku id的数组
array(
   [0] => 34,
   [1] => 67, 
   [2] => 12
)

我有一个订单索引,其中orders.sku_id作为

出现
"_index":"orders",
"_type":"orders",
"_id":"249622367",
"_score":1,
"_source":{  
   "Order":{  
      "id":"249622367",
      "sku.id":34,
      "gross_value":"310",
      "quantity":"1"
   }
},
"_index":"orders",
"_type":"orders",
"_id":"249622364",
"_score":1,
"_source":{  
   "Order":{  
      "id":"249622364",
      "sku.id":34,
      "gross_value":"510",
      "quantity":"2"
   }
},
"_index":"orders",
"_type":"orders",
"_id":"249622365",
"_score":1,
"_source":{  
   "Order":{  
      "id":"249622365",
      "sku.id":67,
      "gross_value":"560",
      "quantity":"2"
   }
}

我想要对具有sku_id(来自sku_ids数组)的gross_value和数量进行聚合作为直方图,所需的输出如下 -

"aggregations": {
      "skus": {
         "buckets": [
            {
                "sku_id": 34,
                "gross_value": "820",
                "quantity": "3"
            },
            {
                "sku_id": 67,
                "gross_value": "560",
                "quantity": "2"
             },
             {
                 "sku_id": 12,
                 "gross_value": 0,
                 "quantity": 0
              }
           ]
       }
  }

我在sku_id上尝试了术语聚合,并在gross_value&上尝试了总和聚合数量,但无法通过。

任何帮助将不胜感激。

提前致谢。

0 个答案:

没有答案