我需要根据消息和id查询一些Elastisearch日志 .
简化的方案如下:每分钟工作一次 . 如果完成,我们有一个“已完成”的日志,否则“未完成” .
案例可以重新处理,因此下次工作时可以完成未完成的案例 . 我想检索所有尚未完成的案例 .
示例数据表是:
message CASE_ID
COMPLETED 008
COMPLETED 004
NOT COMPLETED 004
NOT COMPLETED 002
COMPLETED 006
NOT COMPLETED 002
COMPLETED 001
在上面的例子中,我需要检索尚未完成的案例002 . (按时间顺序从下到上)
在SQL中它将是这样的:
SELECT CASE_ID
FROM logs l1
WHERE l1.message = "NOT COMPLETED"
AND NOT EXISTS (
SELECT
CASE_ID
FROM
logs l2
WHERE
l2.message = "COMPLETED"
AND l1.CASE_ID = l2.CASE_ID
)
我是ElastiSearch的新手,在阅读了一些例子后,我尝试了不同的聚合,但它们没有用 .
感谢任何有帮助的人