Я хочу запросить эластичный поиск для бизнес-логики.Я не уверен, может ли это быть достигнуто через ES или нет.Проверил на форуме и прочитал документацию ES, не нашел ничего релевантного.
id event starttime endtime duration
1 mov 2019-05-20 02:00:00 2019-05-20 03:00:00 60
1 stop 2019-05-20 03:00:01 2019-05-20 03:10:01 10
1 mov 2019-05-20 03:10:02 2019-05-20 03:50:00 40
1 stop 2019-05-20 03:50:01 2019-05-20 04:30:00 40
1 mov 2019-05-20 04:30:01 2019-05-20 04:50:00 20
2 mov 2019-05-20 01:00:00 2019-05-20 02:30:00 90
2 stop 2019-05-20 02:30:01 2019-05-20 02:45:00 15
2 mov 2019-05-20 02:45:01 2019-05-20 03:50:00 65
2 stop 2019-05-20 03:50:01 2019-05-20 04:30:00 40
2 mov 2019-05-20 04:30:01 2019-05-20 04:50:00 20
Мне нужен вывод строк, где 2 движения имеют разницу менее 15 минут: -
id event starttime endtime duration
1 mov 2019-05-20 02:00:00 2019-05-20 03:00:00 60
1 mov 2019-05-20 03:10:02 2019-05-20 03:50:00 40
Я написал этот запрос: -
{
"query": {
"bool": {
"must": [
{
"term": {
"id": "1"
}
},
{
"term": {
"event": "mov"
}
}
],
"filter": {
"range": {
"startevent": {
"gte": "2019-05-20T00:00:00.000Z",
"lte": "2019-05-20T23:59:59.000Z"
}
}
}
}
},
"sort": {
"startevent": {
"order": "asc"
}
},
"aggs": {
"sumodo": {
"sum": {
"field": "odo"
}
}
}
}
Этот запрос дает мне все движения, но я просто хочу mov, где разница во времени между двумя последовательными движениями меньше, чем 15.
Этов основном результаты поиска на основе итерации.это возможно в ES?
Спасибо,