gpt4 book ai didi

elasticsearch - 如何在Elasticsearch中获取不同的文档

转载 作者:行者123 更新时间:2023-12-02 22:24:29 25 4
gpt4 key购买 nike

我有一个包含campaign_id(不是唯一),clicks(每个campaign_id相同)的文档。
如何计算唯一campaign_idclicks的总和。例如

campaign_id=1, clicks=2;
campaign_id=2, clicks=3;
campaign_id=1, clicks=2;

唯一 campaign_idclicks的总和为5。

主要思想是获取具有唯一 campaign_ids的文档,然后求和。
如何在Elasticsearch中创建这样的查询?

尝试使用聚合内的过滤器来实现此目的,但过滤器应为存储桶而非指标。

最佳答案

最简单的方法是在ES 2.0中使用pipeline aggregations,首先使用max聚合来获取单值(因为您说过相同的campaign_id具有相同的clicks值),然后使用sum_bucket管道聚合来获取最终的总和:

{
"size": 0,
"aggs": {
"unique_ids": {
"terms": {
"field": "campaign_id",
"size": 10
},
"aggs": {
"one_value": {
"max": {
"field": "clicks"
}
}
}
},
"sum_uniques": {
"sum_bucket": {
"buckets_path": "unique_ids>one_value"
}
}
}
}

关于elasticsearch - 如何在Elasticsearch中获取不同的文档,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33670083/

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