首页 > 解决方案 > 如何根据日期字段从 Elasticsearch 获取最新数据

问题描述

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

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

那你能不能给一些其他的选择?

标签: elasticsearchelastic-stackelasticsearch-aggregation

解决方案


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

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

推荐阅读