我需要根据消息和ID查询一些Elastisearch日志。
以下是简化方案:每分钟处理一次案件。如果完成,我们将显示日志“ COMPLETED”,否则为“ NOT COMPLETED”。
案例可以重新处理,因此下一次工作时可以完成未完成的案例。 我想检索所有尚未完成的案例。
样本数据表是:
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的新手,在阅读了一些示例之后,我尝试了不同的聚合,但是它们没有用。
感谢任何能提供帮助的人