首页 > 解决方案 > 具有时间戳范围的 Elasticsearch 分页

问题描述

Elasticsearch官方文档介绍,elasticsearch可以通过复合聚合实现分页。

复合聚合将多次获取数据以获取所有结果。

所以我的问题是,我可以在执行复合聚合时使用 range from now-1hto吗?now

如果我能。当每个范围查询不同时,如何组合聚合查询保持源数据不变now

如果我不能。我下面的查询没有错误,结果似乎是正确的。

{
  "size": 0,
  "query": {
    "bool": {
      "filter": [
        {
          "range": {
            "timestamp": {
              "gte": "now-1h"
            }
          }
        }
      ]
    }
  },
  "aggs": {
    "user_device": {
      "composite": {
        "after": {
          "user_name": "alen.lv"
        },
        "size": 100,
        "sources": [
          {
            "user_name": {
              "terms": {
                "field": "user_name"
              }
            }
          }
        ]
      },
      "aggs": {
        "user_mac": {
          "terms": {
            "field": "user_mac",
            "size": 1000
          }
        }
      }
    }
  }
}

标签: elasticsearchelasticsearch-dsl

解决方案


推荐阅读