复合聚合和排序

3xiyfsfu  于 2021-06-14  发布在  ElasticSearch
关注(0)|答案(0)|浏览(313)

用例:
我在elasticsearch中有10万以上的用户数据。
我需要找到唯一的用户id,它可以通过使用术语聚合找到
我需要所有的聚合桶,它是通过使用复合聚合解决的
现在,我需要根据用户最新更新的数据(基于最新的时间戳)对所有聚合桶进行排序。
注意:更新最新数据的用户应排在桶列表的第一位)
我该怎么做?
复合聚合+排序?或者别的什么?
注意:将有超过10k的用户,因此存储桶计数将超过10k。
示例用户数据

{
  "_index": "logstash-2020.10.29",
  "_type": "doc",
  "_id": "L0Urc3UBttS_uoEtubDk",
  "_version": 1,
  "_score": null,
  "_source": {
    "@version": "1",
    "@timestamp": "2020-10-29T06:56:00.000Z",
    "timestamp_string": "1603954560",
    "search_query": "example 3",
    "user_uuid": "asdfrghcwehf",
    "browsing_url": "https://www.google.com/search?q=example+3",
  }
}

预期产量:

[
  {
    "key": "bjvexyducsls",
    "doc_count": 846,
    "1": {
      "value": 1.603948557E12,
      "value_as_string": "2020-10-29T05:15:57.000Z"
    }
  },
  {
    "key": "lhmsbq2osski",
    "doc_count": 420,
    "1": {
      "value": 1.6039476E12,
      "value_as_string": "2020-10-29T05:00:00.000Z"
    }
  },
  {
    "key": "m2wiaufcbvvi",
    "doc_count": 1,
    "1": {
      "value": 1.603893635E12,
      "value_as_string": "2020-10-28T14:00:35.000Z"
    }
  },
  {
    "key": "rrm3vd5ovqwg",
    "doc_count": 1,
    "1": {
      "value": 1.60389362E12,
      "value_as_string": "2020-10-28T14:00:20.000Z"
    }
  },
  {
    "key": "x42lk4t3frfc",
    "doc_count": 72,
    "1": {
      "value": 1.60389318E12,
      "value_as_string": "2020-10-28T13:53:00.000Z"
    }
  }
]

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题