У меня есть следующее сопоставление в Elasticsearch:
PUT /traffic-data
{
"mappings": {
"traffic-entry": {
"_all": {
"enabled": false
},
"properties": {
"CameraId": {
"type":"keyword"
},
"VehiclePlateNumber": {
"type":"keyword"
},
"DateTime": {
"type":"date"
}
}
}
}
}
Я хочу рассчитать, сколько дней в месяце автомобиль простоял. Уникальный автомобиль идентифицируется VehiclePlateNumber
. Итак, я хочу получить что-то вроде этого:
VehiclePlaneNumber Month StayDays
111 1 5
222 1 1
...
Как я могу сделать это с помощью запроса Elasticsearch?
Вот что я пробовал:
GET traffic-data/_search?
{
"size": 0,
"aggs":{
"by_district":{
"terms": {
"field": "VehiclePlateNumber",
"size": 100000
},
"aggs": {
"by_month": {
"terms": {
"field": "DateTime",
"size": 12
}
}
}
}
}
}