Во-первых, вам нужно добавить фильтр диапазона или диапазон должен в запросе, чтобы получить набор результатов между требуемыми датами. После получения правильного набора результатов вы можете агрегировать и фильтровать данные в соответствии с вашими требованиями.
POST _search
{
"query": {
"bool": {
"filter": [
{
"range": {
"endDate": {
"gte": "2018-07-30",
"format": "yyyy-MM-dd"
}
}
},
{
"range": {
"startDate": {
"lte": "2018-08-30",
"format": "yyyy-MM-dd"
}
}
}
]
}
}
}
Надеюсь, что это решит вашу проблему.