elasticsearch - 根据聚合结果构建直方图

标签 elasticsearch kibana

我的资料
{ "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 |
我的目标

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

为此,我应该获取条款汇总的结果,并将其发送到直方图汇总

这是上面示例的结果:
| 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" } } } } } }'
但是,我检索到一个空桶。

我该怎么办?

谢谢!

最佳答案

I want to build the histogram based on the "doc_count" field of the "group_by_street" aggregation



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

我唯一知道像group_by_street>_count这样的路径符号的地方是将嵌套聚合中的排序路径指定为documented here

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

关于elasticsearch - 根据聚合结果构建直方图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40173676/

相关文章:

rest - 在 REST 服务中返回异步 ElasticSearch 数据

php - Elasticsearch 按值优先排序

asp.net - Elastic Search 5.0重复删除/优化

python - 您可以订购 Elasticsearch 查询结果吗?如果字段中为True,则强制将其结尾

elasticsearch - 在文字栏位进行完全比对搜寻

python - 使用elasticsearch-dsl-py在子字段(包含在另一个字段中的字段)上创建查询?

elasticsearch - 如何在不对Kibana进行任何汇总的情况下将数据制成表格?

elasticsearch - Kibana数据表中的条件总和度量(小计列)

elasticsearch - 如何在可视化中使用来自Kibana开发工具的DSL查询?

elasticsearch - Elasticsearch ML是否对较新的ES版本禁用?