Elasticsearch 基数聚合
在Elasticsearch中,基数聚合(Cardinality Aggregation)用于计算聚合区域中的唯一值(或独特的数据)的数量。这对于了解一个字段有多少独特的值,或者了解某个查询匹配的文档数量特别有用。
基数聚合的语法如下:
{
"aggs": {
"distinct_values_count": {
"cardinality": {
"field": "your_field_name",
"precision_threshold": 40000
}
}
}
}
在这个例子中,your_field_name
是你想要计算唯一值数量的字段名。precision_threshold
是一个可选参数,它可以帮助Elasticsearch在返回精确的结果和占用更多资源之间找到平衡。
以下是一个实际的请求示例,使用Elasticsearch的REST API:
curl -X POST "localhost:9200/_search" -H 'Content-Type: application/json' -d'
{
"size": 0,
"aggs": {
"distinct_values": {
"cardinality": {
"field": "user.id",
"precision_threshold": 40000
}
}
}
}
'
这个请求会计算 user.id
字段的唯一值数量,并且设置了精确度阈值为40000。返回的结果会包含一个名为 distinct_values
的基数聚合,其中包含了唯一值的数量。
评论已关闭