如何在 Elasticsearch 中获取聚合桶的总数?
How to get total number of aggregation buckets in Elasticsearch?
我使用 Elasticsearch 术语聚合来查看有多少文档在其“foo”字段中具有特定值,如下所示:
{
...
"aggregations": {
"metastore": {
"terms": {
"field": "foo",
"size": 50
}
}
}
}
我得到回复:
"aggregations": {
"foo": {
"buckets": [
{
"key_as_string": "2018-10-01T00:00:00.000Z",
"key": 1538352000000,
"doc_count": 935
},
{
"key_as_string": "2018-11-01T00:00:00.000Z",
"key": 1541030400000,
"doc_count": 15839
},
...
/* 48 more values */
]
}
}
但我将不同值的数量限制为 50 个。如果此字段中有更多不同值,它们将不会在响应中返回,这没关系,因为我不需要全部他们,但我想知道他们有多少人。那么,我怎样才能得到不同值的总数呢?如果答案提供完整的示例查询,那就太好了,谢谢。
cardinality
aggregation is there to help. Just note, however, that the number that is returned is an approximation 可能无法反映您在请求所有存储桶时获得的存储桶的确切数量。但是,在低基数字段上的准确性非常好。
{
...
"aggregations": {
"unique_count": {
"cardinality": {
"field": "foo"
}
},
"metastore": {
"terms": {
"field": "foo",
"size": 50
}
}
}
}
您或许可以添加一个 cardinality aggregation,这将为您提供该字段的唯一术语数。这将等于术语聚合的桶数。
{
...
"aggregations": {
"metastore": {
"terms": {
"field": "foo",
"size": 50
}
},
"uniquefoo": {
"cardinality": {
"field": "foo"
}
}
}
}
注意:请记住基数聚合在某些情况下可能 return 近似计数。要了解更多信息,请阅读 here。
我使用 Elasticsearch 术语聚合来查看有多少文档在其“foo”字段中具有特定值,如下所示:
{
...
"aggregations": {
"metastore": {
"terms": {
"field": "foo",
"size": 50
}
}
}
}
我得到回复:
"aggregations": {
"foo": {
"buckets": [
{
"key_as_string": "2018-10-01T00:00:00.000Z",
"key": 1538352000000,
"doc_count": 935
},
{
"key_as_string": "2018-11-01T00:00:00.000Z",
"key": 1541030400000,
"doc_count": 15839
},
...
/* 48 more values */
]
}
}
但我将不同值的数量限制为 50 个。如果此字段中有更多不同值,它们将不会在响应中返回,这没关系,因为我不需要全部他们,但我想知道他们有多少人。那么,我怎样才能得到不同值的总数呢?如果答案提供完整的示例查询,那就太好了,谢谢。
cardinality
aggregation is there to help. Just note, however, that the number that is returned is an approximation 可能无法反映您在请求所有存储桶时获得的存储桶的确切数量。但是,在低基数字段上的准确性非常好。
{
...
"aggregations": {
"unique_count": {
"cardinality": {
"field": "foo"
}
},
"metastore": {
"terms": {
"field": "foo",
"size": 50
}
}
}
}
您或许可以添加一个 cardinality aggregation,这将为您提供该字段的唯一术语数。这将等于术语聚合的桶数。
{
...
"aggregations": {
"metastore": {
"terms": {
"field": "foo",
"size": 50
}
},
"uniquefoo": {
"cardinality": {
"field": "foo"
}
}
}
}
注意:请记住基数聚合在某些情况下可能 return 近似计数。要了解更多信息,请阅读 here。