弹性搜索迭代查询

时间:2019-05-22 05:05:31

标签: java elasticsearch solr cassandra lucene

我想查询弹性搜索以获取业务逻辑。我不确定是否可以通过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中有可能吗?

谢谢

0 个答案:

没有答案