基于特定字段查找不同值ID字段并在其顶部进行聚合-ElasticSearch

e0bqpujr  于 2022-11-02  发布在  ElasticSearch
关注(0)|答案(1)|浏览(122)

我有一个以下格式,其中有重复的ID字段。

ID  PDE_ID  Curency

1   21  USD 35

1   23  USD 34

2   25  CAD 43

3   26  INR 33

当有重复的ID字段时,我们需要按PDE_ID列选取最新的记录,并对结果进行聚合,如Sum、Min、Max、value_count。
我尝试了top_result和max,但是两者都不支持子聚合。所以我可以做distinct和latest记录,但是不能做任何聚合(sum/min/max/count)。
任何帮助都是非常感谢的。

uxh89sit

uxh89sit1#

无论谁被卡住了,请找到以下查询:

GET dispute-1-2022-04-*/_search?size=0
{
  "aggs": {
    "Duplicates": {
        "terms": {
          "field": "PDE.keyword"
      },
      "aggs": {
        "div_id": {
          "terms": {
                "field": "PDE_DETAIL_ID.keyword",
                "order": {
                  "_term": "desc"
                },
                "size": 1
              },
              "aggs": {
                "individual_sum": {
                  "sum": {
                    "field": "DIV_ID"
                  }
                }
              }
        },
        "max_cal": {
            "max_bucket": {
                "buckets_path": "div_id>individual_sum"
            }
        }
        }
      },
      "total_min": {
        "max_bucket": {
          "buckets_path": "Duplicates>max_cal"
        }
      }
    }
  }

相关问题