代码之家  ›  专栏  ›  技术社区  ›  Mariannah47

日期直方图弹性搜索中的反向嵌套聚合

  •  0
  • Mariannah47  · 技术社区  · 2 年前

    我在合并日期直方图中不同级别的数据时遇到了一些问题。 弹性文档 gives 一个有助于处理柱状图中的日期是从嵌套和聚合的当前级别检索的情况的示例使用了更高级别 reverse_nested 有帮助。但如果情况发生了变化,该怎么办?就像聚合使用当前的嵌套级别,日期在上层?

    假设我有下一个数据结构:

      {
        "_source": {
          "order_uuid": "...",
          "created_at": "...",
          "status": "...",
          "subtotal": 100,
          "items": [
            {
              "item_id": 1,
              "price": 1000,
              "units": 1,
            }
          ],
        }
      }
    

    我想和你约会 created_at 每个项目的字段。所以我想让smth像这样:

    {
      "size": 0,
      "query": {
        "match_all": {}
      },
      "aggs": {
        "items": {
          "nested": {
            "path": "items"
          },
          "aggs": {
            "data": {
              "terms": {
                "field": "items.item_id"
              },
              "aggs": {
                "reversed": {
                  "aggs": {
                    "sales_per_day": {
                      "date_histogram": {
                        "reverse_nested": {},
                        "field": "created_at", #<- not nested
                        "calendar_interval": "day",
                        "format": "yyyy-MM-dd",
                      },
                      "aggs": {
                        "units_sum": {
                          "sum": {"field": "items.units"} #<- nested
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    }
    

    这个例子显然不起作用,因为你不能使用 反向嵌套 在…内 date_histogram (至少我不知道怎么做)但它给人的印象是我想要什么。

    有人知道如何在不重新组织映射的情况下处理它吗?我很欣赏你的想法。

    0 回复  |  直到 2 年前