elasticsearch - 使用 group by channel id 获取最大值和最小值
问题描述
我想使用按频道 ID 分组来获取最大值和最小值,并且还想获取最大视频 ID 和最小视频 ID
{
"query": {
"term": {
"channel_id.keyword": {
"value": "UCQOd1f6pYldvhgvdQ_ktpGA"
}
}
},
"aggs": {
"views_max": {
"max": {
"field": "views",
"missing": 0
},
"_source":["video_id","views"]
},
"views_min": {
"min": {
"field": "views",
"missing": 0
},
"_source":["video_id","views"]
}
}
}
解决方案
{
"aggs": {
"2": {
"terms": {
"field": "channel_id.keyword",
"order": {
"1": "desc"
},
"size": 10
},
"aggs": {
"1": {
"max": {
"field": "video_id"
}
},
"3": {
"min": {
"field": "video_id"
}
}
}
}
},
"size": 0,
"_source": {
"excludes": []
},
"query": {
"bool": {
"must": [],
"filter": [
{
"bool": {
"should": [
{
"match": {
"channel_id.keyword": "UCQOd1f6pYldvhgvdQ_ktpGA"
}
}
],
"minimum_should_match": 1
}
}
]
}
}
}
上述查询将给出特定 channel_id 的 video_id 的最大值和最小值。
{
"aggs": {
"2": {
"terms": {
"field": "channel_id.keyword",
"order": {
"1": "desc"
},
"size": 10
},
"aggs": {
"1": {
"max": {
"field": "video_id"
}
},
"3": {
"min": {
"field": "video_id"
}
}
}
}
},
"size": 0,
"_source": {
"excludes": []
}
}
通过上述查询,您将能够获取所有不同的 channel_id 其各自的最大和最小 video_id
推荐阅读
- python - 如果字符串是不可变的,为什么这会起作用?
- reactjs - 使用 React Redux、Axios 调用 API
- spring-boot - 了解自定义处理程序和 SpringBootApiGatewayRequestHandler 之间的区别
- c# - 异步方法中的单元测试异常
- openxml - 带有 w:type="table" 和 w:default="1" 属性的 w:style 是否会自动应用于没有 aw:tblStyle 的 aw:tbl?
- sql-server - 在不使用大小写的情况下以最优化的方式附加列的前一个值
- html - 最大高度 100% 突破 100vh
- nginx - 如何使用 Kubernetes DNS 查找 NGINX set_real_ip_from
- java - 替换字符串中的相应字符(java)
- linux - 内核编译规则到底是什么意思?