如何在ElasticSearch中使用aggregations
来统计数据库中只有一个文档的用户数量?
{
"size" : 0,
"aggs" : {
"users_with_single_doc" : {
"rare_terms": {
"field": "uid",
"max_doc_count" : 1
}
}
}
}
上面的查询只能列出所有_doc_count
为1的bucket,但我想统计有多少个bucket的_doc_count
为1。
2条答案
按热度按时间8qgya5xd1#
The rare_terms aggregation是Elasticsearch中使用的一种值源聚合,用于识别一组文档中不常见或罕见的术语。它类似于术语聚合,但不是按计数对术语进行排序,它按照稀有性的升序对它们进行排序。这意味着在数据集中不常出现的稀有术语将被赋予更高的优先级,并首先返回。项聚集是比按计数排序更准确的识别稀有项的方式,按计数排序可能具有无限的误差。
您可以在您的案例中使用术语aggregation和bucket_selector aggregation。下面是一个示例:
p3rjfoxz2#
如果我正确理解了你在寻找什么,要计算桶的数量,使用stats bucket aggregation怎么样?
示例: