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 次  |  
        
|   最近记录:  |