dle*_*ech 5 distinct aggregation elasticsearch
在 Elasticsearch 中,我试图计算数据集中不同字段值的数量,其中字段值:
从某种意义上说,我试图计算重复发生的频率。我怎样才能做到这一点?
假设我有以下 Elasticsearch 文档:
{ "myfield": "bob" }
{ "myfield": "bob" }
{ "myfield": "alice" }
{ "myfield": "eve" }
{ "myfield": "mallory" }
Run Code Online (Sandbox Code Playgroud)
由于“alice”、“eve”和“mallory”出现一次,而“bob”出现两次,我预计:
number_of_values_that_appear_once: 3
number_of_values_that_appear_twice_or_more: 1
Run Code Online (Sandbox Code Playgroud)
我可以通过术语聚合并查看doc_count每个存储桶的部分方式。术语聚合的输出myfield如下所示:
"buckets": [
{
"key": "bob",
"doc_count": 3
},
{
"key": "alice",
"doc_count": 1
},
...
]
Run Code Online (Sandbox Code Playgroud)
doc_count == 1例如,从这个输出中,我可以对桶的数量进行求和。但这无法扩展,因为我经常有数千个不同的值,因此遗愿清单将是巨大的。
聚合会受到查询的影响,因此,如果您想查找重复项,只需运行以下查询:
{
"size": 0,
"query": {
"match_all": {}
},
"aggregations": {
"YOUR_AGGREGATION_NAME": {
"terms": {
"field": "myfield"
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
ps1:该size键仅省略结果/点击数(总数除外)。
ps2:query关键是匹配索引中的所有文档。
| 归档时间: |
|
| 查看次数: |
1980 次 |
| 最近记录: |