У меня есть индекс со следующими данными:
{
"_index": "recommender",
"_type": "doc",
"_id": "AWZl8H042YsxaK6w02jY",
"_score": 1,
"_source": {
"user": "102",
"song": "1",
"created": "12-28-2018 19:12:12"
}
},
{
"_index": "recommender",
"_type": "doc",
"_id": "AWZl8PM5zqmU2ne0dY9W",
"_score": 1,
"_source": {
"user": "102",
"song": "5",
"created": "01-1-2018 23:12:12"
}
},
{
"_index": "recommender",
"_type": "doc",
"_id": "AWZl8PPx2YsxaK6w02jc",
"_score": 1,
"_source": {
"user": "102",
"song": "5",
"created": "01-1-2018 23:12:12"
}
},
{
"_index": "recommender",
"_type": "doc",
"_id": "AWZl8Xdm2YsxaK6w02jf",
"_score": 1,
"_source": {
"user": "102",
"song": "5",
"created": "06-10-2018 15:16:12"
}
},
{
"_index": "recommender",
"_type": "doc",
"_id": "AWZl8XgvzqmU2ne0dY9a",
"_score": 1,
"_source": {
"user": "102",
"song": "5",
"created": "06-10-2018 15:16:12"
}
},
{
"_index": "recommender",
"_type": "doc",
"_id": "AWZl8ZLwzqmU2ne0dY9d",
"_score": 1,
"_source": {
"user": "103",
"song": "5",
"created": "06-10-2018 15:16:12"
}
},
{
"_index": "recommender",
"_type": "doc",
"_id": "AWZl8aF1zqmU2ne0dY9e",
"_score": 1,
"_source": {
"user": "103",
"song": "6",
"created": "06-10-2018 15:16:12"
}
},
{
"_index": "recommender",
"_type": "doc",
"_id": "AWZl79hm2YsxaK6w02jW",
"_score": 1,
"_source": {
"user": "102",
"song": "1",
"created": "1-02-2018 13:12:12"
}
},
{
"_index": "recommender",
"_type": "doc",
"_id": "AWZl8O1nzqmU2ne0dY9U",
"_score": 1,
"_source": {
"user": "102",
"song": "5",
"created": "01-1-2018 23:12:12"
}
},
{
"_index": "recommender",
"_type": "doc",
"_id": "AWZl8O9F2YsxaK6w02ja",
"_score": 1,
"_source": {
"user": "102",
"song": "5",
"created": "01-1-2018 23:12:12"
}
}
Я хочу получить количество песен на пользователя.Таким образом, я могу получить данные как, пользователь 102
проиграл песню 5
всего 4
раз.
Я - яблоко, чтобы считать нет.пользователей или нет.песен отдельно.Но не в состоянии агрегировать по песне и пользователю вместе.
POST /eventindex/_search?size=0
{
"aggs" : {
"doc" : {
"terms" : { "field" : "user" }
}
}
}
Я прочитал, что могу использовать субагрегацию и попробовал что-то вроде этого:
POST /recommender/_search?size=0
{
"aggs": {
"doc": {
"nested": {
"path": "docs"
},
"aggs": {
"name": {
"terms": {
"field": "user"
},
"aggs": {
"name": {
"terms": {
"field": "song"
}
}
}
}
}
}
}
}
}
Это, однако, не сработало.Как правильно решить эту проблему?