【问题标题】:How to get newest data from Elasticsearch based on a date field如何根据日期字段从 Elasticsearch 获取最新数据
【发布时间】:2021-01-28 15:51:27
【问题描述】:

我实现了一个预定脚本,将日期注入我的 Elasticsearch。该脚本不会检查数据是否已存在于 Elasticsearch 中,因此它会插入重复项。我想要的是获取所有具有最新时间戳字段值(插入日期时间)的事件。

注意:我没有 id 或唯一字段可以帮助我按它进行分组并将大小设置为 1 以获得最新的。

那么你能提供一些其他的选择吗?

【问题讨论】:

    标签: elasticsearch elastic-stack elasticsearch-aggregation


    【解决方案1】:

    您可以按最新的可用时间戳进行汇总,并获取顶部可能重复的文档,如下所示:

    GET index/_search
    {
      "size": 0,
      "aggs": {
        "latest": {
          "terms": {
            "field": "timestamp",
            "order": {
              "_key": "desc"
            },
            "size": 1
          },
          "aggs": {
            "latest_docs": {
              "top_hits": {
                "size": 100
              }
            }
          }
        }
      }
    }
    

    【讨论】:

    • 是的,但我受到基础设施团队的限制,top_hits 的大小不能超过 100,而且我还有更多的行要获取。
    • 嗯,你没有说你有限制。如果你想得到get all events,你需要请你的infra同事让你增加它。
    猜你喜欢
    • 2020-12-21
    • 1970-01-01
    • 1970-01-01
    • 2022-11-12
    • 1970-01-01
    • 1970-01-01
    • 2021-01-31
    • 2018-10-24
    • 1970-01-01
    相关资源
    最近更新 更多