Elasticsearch中的自定义直方图聚合

时间:2019-12-24 19:19:14

标签: python elasticsearch histogram elasticsearch-aggregation

我的索引具有以下结构

item_id: unique item id
sale_date: date of the date
price: price of the sale wrt the date

我想创建每个商品的最新销售价格的直方图。聚合项item_id和最近或最近的price的直方图

我的第一选择是term聚合item_id并从price大小1顺序top_hits sale_date中选取desc并在python结束。

但是。 因为一个月内的数据存储在数千万条记录中。无法及时下载所有sources来执行直方图。

注意:某些商品每天出售,而某些商品则在不同的时间间隔出售。仅选择最新的sale_date

就很棘手

已更新

输入:基于商品的销售时间序列数据。

输出:商品数量的直方图位于获取最新信息的特定价格时段内

1 个答案:

答案 0 :(得分:0)

我转过头来,我使用了类似的情况,可以使用max类型的date aggs,并且可以基于嵌套的orderaggs进行聚合,像这样:

"aggs": {
  "item ID": {
    "terms": {
      "field": "item_id",
      "size": 10000
    },
    "aggs": {
      "price": {
        "terms": {
          "field": "price",
          "size": 1,
          "order": {
            "sale_date": "desc"
          }
        },
        "aggs": {
          "sale_date": {
            "max": {
              "field": "sale_date"
            }
          }
        }
      }
    }
  }
}

我希望能对您有所帮助,并希望您能与我联系。