【问题标题】:How to get ElasticSearch Aggregation with duration如何获得具有持续时间的 ElasticSearch 聚合
【发布时间】:2019-06-06 17:51:11
【问题描述】:

我正在使用 ElasticSearch 7.1.0 和 Kibana 7.1.0,我的数据如下所示

{
  "user":"8a195d1b-24c9-11e5-8f96-00142273155d",
   "session_id":"4d024a90-b141-4ee1-b4e3-e2022fb2f581",
   "timestamp":1559681962442,
   "recieved_timestamp":1559681964197,
   "feature_id":"foo",
   "dwell":{
      "resource_id":"foo",
      "dwell_ms":23218
   },
   "event_type":"dwell",
   "stored_timestamp":1559682046757
}

我想使用一个聚合来查看数据,该聚合显示停留事件的开始和停止,我使用术语聚合将停留事件分类到所引用的功能的存储桶中,然后为每个这些桶中的事件将相对停留偏移量添加到时间戳,这样我就有了一个事件的开始和停止时间。

任何关于如何为弹性搜索构建此类查询的指导将不胜感激。

谢谢!

【问题讨论】:

  • 对于您给定的事件文档,我无法看到任何字段为 startstop。有吗?
  • @Suresh 好吧,时间戳字段是开始时间,而停止是我想从时间戳和dwell.dwell_ms 得出的相对持续时间

标签: elasticsearch kibana


【解决方案1】:

试试这个。它将按字段 event_type 聚合所有事件,并再次使用 top_hits 子聚合从相应的术语聚合桶中获取 timestamp 字段。

{
    "size": 0,
    "aggs": {
        "event_type": {
            "terms": {
                "field": "event_type",
                "size": 5
            },
            "aggs": {
                "top_event_hits": {
                    "top_hits": {
                        "_source": {
                            "includes": [
                                "timestamp"
                            ]
                        },
                        "size": 1
                    }
                }
            }
        }
    }
}

【讨论】:

    猜你喜欢
    • 2015-08-24
    • 2022-10-15
    • 1970-01-01
    • 2018-06-21
    • 1970-01-01
    • 2018-08-17
    • 2012-06-27
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多