gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-03 00:11:45 25 4
gpt4 key购买 nike

我的资料

{ "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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com