如何从我的存储桶中获取avg或max doc_count。
有很多关于如何使用数字字段的例子, 但我需要获得不同设备的nax数量。
我的查询:
POST sessions/_search
{
"size": 0,
"query": {
...
},
"aggs": {
"1": {
"terms": {
"size" : 10,
"order" : {
"_count" : "desc"
},
"field": "deviceId"
}
}
}
}
示例结果:
"aggregations": {
"1": {
"doc_count_error_upper_bound": 62,
"sum_other_doc_count": 326057,
"buckets": [
{
"key": "878f6sdb0245e3d8bd",
"doc_count": 230
},
{
"key": "ee43b17fsfc00fd04f",
"doc_count": 224
},
{
"key": "bdcdeb0eeaffcfe748",
"doc_count": 141
},
...
答案 0 :(得分:0)
Terms aggregation
按doc_count
的递减顺序对存储桶进行排序。因此,如果你获取第一个存储桶,那将是最大的doc_count。
查询:
POST sessions/_search
{
"size": 0,
"query": {
...
},
"aggs": {
"1": {
"terms": {
"size" : 1,
"order" : {
"_count" : "desc"
},
"field": "deviceId"
}
}
}
}
我不认为使用一个查询可以找到平均值。但是您可以使用以下查询来获得结果
索引中的 Sum Of All doc counts = Total documents
。
首先使用
查找总文件GET /order/order/_count
然后使用cardinality
{
"aggs" : {
"device_count" : {
"cardinality" : {
"field" : "deviceId"
}
}
}
}
然后将结果除以得到平均值。
cardinality
返回的计数是近似值。有关详细信息,请参阅https://www.elastic.co/guide/en/elasticsearch/reference/2.x/search-aggregations-metrics-cardinality-aggregation.html。
希望它有所帮助。