对具有消息过滤功能的ID进行Elasticsearch查询+在不同消息上不存在过滤器

时间:2018-12-10 10:48:14

标签: elasticsearch kibana elasticsearch-aggregation

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

感谢任何能提供帮助的人

0 个答案:

没有答案