gpt4 book ai didi

ElasticSearch Max Agg 在文档的列表属性中的最低值

转载 作者:行者123 更新时间:2023-12-02 23:07:39 27 4
gpt4 key购买 nike

我希望对文档下的属性值进行 Max 聚合,该属性是复杂对象(键和值)的列表。这是我的数据:

[{
"id" : "1",
"listItems" :
[
{
"key" : "li1",
"value" : 100
},
{
"key" : "li2",
"value" : 5000
}
]
},
{
"id" : "2",
"listItems" :
[
{
"key" : "li3",
"value" : 200
},
{
"key" : "li2",
"value" : 2000
}
]
}]
当我对“listItems.value”进行嵌套最大聚合时,我期望返回的最大值为 200(而不是 5000),原因是我希望逻辑首先计算每个文档的 listItems 下的 MIN 值,然后对此进行最大聚合。有可能做这样的事情吗?
谢谢。

最佳答案

搜索查询执行以下聚合:

  • Terms aggregationid field
  • Min aggregationlistItems.value
  • Max bucket aggregation这是一个兄弟管道聚合,它标识具有兄弟聚合中指定度量的最大值的桶,并输出桶的值和键。

  • 请引用 nested aggregation , 以获得详细的解释。
    添加一个包含索引数据、索引映射、搜索查询和搜索结果的工作示例。
    索引映射:
    {
    "mappings": {
    "properties": {
    "listItems": {
    "type": "nested"
    },
    "id":{
    "type":"text",
    "fielddata":"true"
    }
    }
    }
    }
    指数数据:
    {
    "id" : "1",
    "listItems" :
    [
    {
    "key" : "li1",
    "value" : 100
    },
    {
    "key" : "li2",
    "value" : 5000
    }
    ]
    }
    {
    "id" : "2",
    "listItems" :
    [
    {
    "key" : "li3",
    "value" : 200
    },
    {
    "key" : "li2",
    "value" : 2000
    }
    ]
    }
    查询查询:
        {
    "size": 0,
    "aggs": {
    "id_terms": {
    "terms": {
    "field": "id"
    },
    "aggs": {
    "nested_entries": {
    "nested": {
    "path": "listItems"
    },
    "aggs": {
    "min_position": {
    "min": {
    "field": "listItems.value"
    }
    }
    }
    }
    }
    },
    "maxValue": {
    "max_bucket": {
    "buckets_path": "id_terms>nested_entries>min_position"
    }
    }
    }
    }
    搜索结果:
    "aggregations": {
    "id_terms": {
    "doc_count_error_upper_bound": 0,
    "sum_other_doc_count": 0,
    "buckets": [
    {
    "key": "1",
    "doc_count": 1,
    "nested_entries": {
    "doc_count": 2,
    "min_position": {
    "value": 100.0
    }
    }
    },
    {
    "key": "2",
    "doc_count": 1,
    "nested_entries": {
    "doc_count": 2,
    "min_position": {
    "value": 200.0
    }
    }
    }
    ]
    },
    "maxValue": {
    "value": 200.0,
    "keys": [
    "2"
    ]
    }
    }

    关于ElasticSearch Max Agg 在文档的列表属性中的最低值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64052984/

    27 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com