我想查询弹性搜索以获取业务逻辑。我不确定是否可以通过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"
}
}
}
}
该查询为我提供了所有动作,但是,我只想要连续两次连续移动之间的时间差小于15的移动。
这基本上是基于迭代的搜索结果。 ES中有可能吗?
谢谢