elasticsearch - 如何对桶排序结果进行排名?
问题描述
我正在弹性搜索中创建排行榜查询,我有具有父子关系的文档,父文档:玩家子文档:团队一个玩家可以在多个团队中。
我正在计算每个团队的总分并使用桶排序对结果进行排序,并且我得到了正确的排序结果。
我想在排序结果中获得每个团队的排名,例如在每个桶值中的 1000 个团队总计结果中,我应该获得一个类似 Rank: 1 的键,它是该值在 1000 个排序结果中的索引;
这是我目前的尝试:
{
"size": 0,
"query": {
"bool": {
"must": [
{
"term": {
"type": "contest_teams"
}
},
{
"term": {
"challenge_id": 212
}
}
]
}
},
"aggs": {
"team": {
"terms": {
"field": "user_id"
},
"aggs": {
"team_score": {
"parent": {
"type": "team_player"
},
"aggs": {
"total_points": {
"sum": {
"field": "points"
}
}
}
},
"team_points_bucket_sort": {
"bucket_sort": {
"sort": [
{
"team_score.total_points": {
"order": "desc"
}
}
],
"size": 2,
"from": 0
}
}
}
}
}
}
解决方案
推荐阅读
- excel - 如何在python中计数,并直接在数据框中创建列(与多列分组)
- python - 读取 CSV 文件并跳过一些值
- python - 为什么我的 Keras LSTM 模型在时间序列预测上与 RandomForest 相比表现糟糕?
- mysql - MySQL:根据状态查找客户的平均余额
- sas - 按不在图中的变量排序 ODS 输出
- ruby-on-rails - 会话令牌不保存 Rails 6 生产版本
- azure - Azure CosmosDB (SQL) - 当对象列表中的任何元素匹配条件时,如何使用列表查询一组对象以返回
- python - 如何创建具有公共键的字典
- ruby-on-rails - toastr js css在Rails项目上禁用背景颜色
- ansible - 如何使用 Ansible 将值替换为 conf 文件