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