Подсчет внутри вложенного последнего элемента массива в документе elasticsearch
Я пытаюсь запросить общее количество ставок, запрошенных в моем elastic search
. Мой набор данных выглядит примерно так:
"hits": [
{
"_index": "nits_media_",
"_type": "nits_media_data_collection",
"_id": "sAsNKnABd82D-bEviD45",
"_score": 1,
"_source": {
"auction_id": "35abc94b-57c3-4961-a7a1-eb6de06ef69e",
"start": "2020-02-09T13:04:21.803Z",
"ad_units": [
{
"code": "/19968336/header-bid-tag-0",
"start": "2020-02-09T13:04:21.803Z",
"finish": "2020-02-09T13:04:22.018Z",
"status": "Finished",
"impression": [
],
"bidders": [
{
"bidder": "appnexus",
"start": "2020-02-09T13:04:21.809Z",
"finish": "2020-02-09T13:04:22.018Z",
"status": "Bid",
"cpm": 0.5,
}
]
},
{
"code": "/19968336/header-bid-tag-1",
"start": "2020-02-09T13:04:21.803Z",
"finish": "2020-02-09T13:04:22.018Z",
"status": "Finished",
"impression": [
],
"bidders": [
{
"bidder": "appnexus",
"start": "2020-02-09T13:04:21.809Z",
"finish": "2020-02-09T13:04:22.018Z",
"status": "Bid",
"cpm": 0.5,
}
]
}
],
"finish": "2020-02-09T13:04:22.018Z",
}
},
]
Мне нужно рассчитать общую сумму количества участников торгов по всем документам. Например, приведенные выше данные дадут мне 2 результата, если таких документов 4, то в результате будет 8.
Для этого я использую эластичный поиск - клиент php, поэтому попробовал сделать это:
'body' => [
'query' => [
'bool' => [
'must' => [],
],
],
'aggs' => [
'ad_units' => [
'nested' => ['path' => 'ad_units'],
'aggs' => [
'bidders' => [
'aggs' => [
'request_count' => [
'aggs' => [
'doc_count' => [
'terms' => ['field' => 'ad_units.bidders.bidder.keyword']
]
],
'total_sessions' => [
'cardinality' => [
'field' => 'session_id.keyword',
'precision_threshold' => 100,
]
],
],
],
]
],
]
]
]
Думаю, я слишком много напортачил, мне нужно руководство по этому поводу. Спасибо.