1
我有以下文件:Elasticsearch - 聚集排序指标
POST index/type
{
"profile": {
"tracks": [
{
"title": "Track 1",
"count": 5
},
{
"title": "Track 2",
"count": 3
}
]
}
}
POST index/type
{
"profile": {
"tracks": [
{
"title": "Track 2",
"count": 8
},
{
"title": "Track 3",
"count": 1
}
]
}
}
POST index/type
{
"profile": {
"tracks": [
{
"title": "Track 4",
"count": 20
},
{
"title": "Track 5",
"count": 1
}
]
}
}
,其中“算”,在每个轨道项目属性是曾扮演特定的轨道倍的用户数量。
我想要按照播放次数排列曲目列表。所以在上面的例子中,预期的结果将是:
[
{
"key": "Track 4",
"count": {
"value": 20
}
},
{
"key": "Track 2",
"count": {
"value": 11
}
},
{
"key": "Track 1",
"count": {
"value": 5
}
},
{
"key": "Track 3",
"count": {
"value": 1
}
},
{
"key": "Track 5",
"count": {
"value": 1
}
}
]
我曾尝试:
"aggs": {
"track_count": {
"terms": {
"field": "profile.tracks.title",
"order": {
"count": "desc"
}
},
"aggs": {
"count": {
"sum": {
"field": "profile.tracks.count"
}
}
}
}
}
但它似乎并不正确,因为计数是通过对所有其他计数性能计算每个轨道项目。
我不知道如何构建我的聚合,以便通过对其他文档中相同曲目的计数属性进行求和来计算计数值。
任何帮助将不胜感激。谢谢。
太好了!有用!感谢您的帮助。 – passkey1510