python - Elasticsearch 中的自定义直方图聚合

标签 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 并从 top_hits size 1 order 中选择 price sale_date desc 并在 python 端创建直方图。

但是。 因为数据在一个月内有数百万条记录。及时下载所有来执行直方图是不可行的。

注意:有些元素每天出售,有些则在不同的时间间隔出售。这使得只选择最新的 sale_date

变得棘手

更新:

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

输出:商品数量的直方图位于某个价格范围内,与最新信息相关

最佳答案

我已经转过身来,我使用了类似的情况,您可以使用 max 类型的 date 聚合,并且可以根据 order 聚合嵌套的 aggs 值,就像:

"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"
            }
          }
        }
      }
    }
  }
}

希望这对您有所帮助,如果它对您有用,希望您能告诉我。

关于python - Elasticsearch 中的自定义直方图聚合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59472730/

相关文章:

python - 如何让PyPI自动安装依赖

ruby-on-rails - 使用Rails自动启动ElasticSearch

elasticsearch - 将 JSON 导入到 elasticsearch 时出现 JsonParseException

r - 用点而不是条来绘制直方图

Python - 从直方图中删除垂直条线

python - 用 Python 编写 P2P 聊天应用程序

python - BeautifulSoup 查找找到的标签后的下一个特定标签

python - 如何编写 Python 模块/包?

amazon-web-services - 将 ElasticSearch 添加为 AWS Data Migration Service 的目标时连接失败

c++ - 直方图中的峰数