跳至主要內容
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?

4563博客

全新的繁體中文 WordPress 網站
  • 首頁
  • 求助 es 多层聚合查询问题
未分類
31 10 月 2020

求助 es 多层聚合查询问题

求助 es 多层聚合查询问题

資深大佬 : sniperking1234 2

数据结构如下所示

{   "id": 1234,   "operationName": "harbor-harbor-core.harbor.svc.cluster.local:80/service/*",   "duration": 145428,   "tags": [     {       "key": "guid:x-request-id",       "type": "string",       "value": "bccfdfa4-86e6-9f47-a41e-d56f7b4e5a88"     },     {       "key": "http.url",       "type": "string",       "value": "http://baidu.com"     }   ] } 

我想根据 tags 中 key 为 http.url 这个字段,聚合出 url 的数量,并且算出每个 url 的平均访问时间,也就是算 avg duration 字段。现在我用下面的查询可以对 url 以及数量进行聚合,但是不知道怎么算 avg duration 。

{   "size": 0,   "aggs": {     "tags": {       "nested": {         "path": "tags"       },       "aggs": {         "key": {           "filter": {             "term": {               "tags.key": "http.url"             }           },           "aggs": {             "values": {               "terms": {                 "field": "tags.value"               }             }           }         }       }     }   } } 

求助 es 大神,如何写查询能够计算出 avg duration

大佬有話說 (1)

  • 資深大佬 : weofuh

    你需要 reverse_nested

    {
    “size”: 0,
    “aggs”: {
    “tags”: {
    “nested”: {
    “path”: “tags”
    },
    “aggs”: {
    “key”: {
    “filter”: {
    “term”: {
    “tags.key”: “http.url”
    }
    },
    “aggs”: {
    “values”: {
    “terms”: {
    “field”: “tags.value”
    },
    “aggs”: {
    “url_duration_avg”: {
    “reverse_nested”: {},
    “aggs”: {
    “duration_avg”:{
    “avg”: {
    “field”: “duration”
    }
    }
    }
    }
    }
    }
    }
    }
    }
    }
    }
    }

文章導覽

上一篇文章
下一篇文章

AD

其他操作

  • 登入
  • 訂閱網站內容的資訊提供
  • 訂閱留言的資訊提供
  • WordPress.org 台灣繁體中文

51la

4563博客

全新的繁體中文 WordPress 網站
返回頂端
本站採用 WordPress 建置 | 佈景主題採用 GretaThemes 所設計的 Memory
4563博客
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?
在這裡新增小工具