【问题标题】:Build histogram from aggregation result从聚合结果构建直方图
【发布时间】:2016-10-21 10:00:09
【问题描述】:

我的数据

{ "city":"New York", "street":"Atlantic Avenue" } { "city":"New York", "street":"Hudson Street" } { "city":"New York", "street":"Fawn Court" } { "city":"Boston", "street":"Atlantic Avenue" } { "city":"Boston", "street":"Hudson Street" } { "city":"Boston", "street":"7th Avenue" } { "city":"Washington DC", "street":"Atlantic Avenue" } { "city":"Washington DC", "street":"Dogwood Drive" } { "city":"Washington DC", "street":"7th Avenue" }

如果我们计算每条街道出现的次数,我们将得到以下结果:

| Street name | Number of times | |-----------------|-----------------| | Atlantic Avenue | 3 | | Hudson Street | 2 | | 7th Avenue | 2 | | Hudson Street | 1 | | Dogwood Drive | 1 |

我的目标

我想构建一个直方图,说明有多少街道名称是唯一的,有多少街道名称被看到两次,等等......

为此,我应该得到 Terms Aggregation 的结果并将其发送到 Histogram Aggregation

这是上面示例的结果:

| Street name count | Number of times | |-------------------|-----------------| | 1 | 2 | | 2 | 2 | | 3 | 1 |

我已经做了什么

我已经用 Kibana 和这个查询构建了第一个表:

curl -XGET 'http://localhost:9200/index1/type1/_search?pretty' -d ' { "size": 0, "aggs": { "group_by_street": { "terms": { "field": "street" } } } }'

然后我尝试将此结果添加到直方图中:

curl -XGET 'http://localhost:9200/fingerprint/user/_search?pretty' -d ' { "size": 0, "aggs": { "histogram_streets": { "histogram": { "field": "group_by_street>_count", "interval": 1 }, "aggs": { "group_by_street": { "terms": { "field": "street" } } } } } }'

但是,我检索到一个空桶。

知道我该怎么做吗?

谢谢!

【问题讨论】:

  • 我很确定这个字段名是错误的:group_by_street>_count。你想在这里做什么?
  • @Phil 我想根据“group_by_street”聚合的“doc_count”字段构建直方图。

标签: elasticsearch kibana


【解决方案1】:

我想根据“group_by_street”聚合的“doc_count”字段构建直方图

ES 聚合是基于文档的,这意味着您可以使用存储桶聚合按文档上的字段进行分组,然后在每个存储桶内进一步聚合,作为另一个文档字段上的嵌套聚合。您可以使用脚本以新颖的方式组合文档字段,但我从未见过聚合桶数桶中文档数的功能。

我知道像group_by_street>_count 这样的路径表示法起作用的唯一地方是将嵌套聚合中的排序路径指定为documented here

我建议您从术语聚合结果创建直方图客户端。在某种程度上,术语聚合已经成为历史,因为它直接告诉您包含每个术语的文档数量。您只需要以对您有意义的方式对每个存储桶元组 (term, doc_count) 进行排序。我不确定您是否可以直接在 kibana 中执行此操作。

【讨论】:

    猜你喜欢
    • 2020-10-26
    • 1970-01-01
    • 1970-01-01
    • 2012-02-26
    • 1970-01-01
    • 2019-07-31
    • 1970-01-01
    • 1970-01-01
    • 2014-03-26
    相关资源
    最近更新 更多