我需要根据消息和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的新手,在阅读了一些例子后,我尝试了不同的聚合,但它们没有用 .

感谢任何有帮助的人