elasticsearch 弹性搜索获取桶计数
我有以下疑问:
elasticsearch 弹性搜索获取桶计数,
elasticsearch,
elasticsearch,我有以下疑问: GET images/_search { "query":{ "bool":{ "must":[ { "term":{ "appID.raw":"myApp" } } ] } }, "size":0, "aggs":{ "perDeviceAg
GET images/_search
{
"query":{
"bool":{
"must":[
{
"term":{
"appID.raw":"myApp"
}
}
]
}
},
"size":0,
"aggs":{
"perDeviceAggregation":{
"terms":{
"field":"deviceID",
"min_doc_count":50000
}
}
}
}
这个查询返回一个“bucket”数组,但我只想返回数组的长度,而不返回数组本身
说明:此查询的目的是统计属于应用程序“myApp”的设备中有多少具有超过50000张图像。我不需要查询来返回这些设备,只需要知道有多少个。返回bucket——字段中每个唯一的术语对应一个bucket——其中每个bucket包含包含该术语的文档计数
听起来您想知道唯一术语的数量,而不是每个术语的文档计数。这个概念称为基数
有一个确定基数的方法。您的查询如下所示:
GET images/_search
{
"query":{
"bool":{
"must":[
{
"term":{
"appID.raw":"myApp"
}
}
]
}
},
"size":0,
"aggs":{
"deviceIdCardinality":{
"cardinality":{
"field":"deviceID"
}
}
}
}
注意:基数计数是近似值。您可以使用聚合的
precision\u threshold
参数配置精度。有关详细信息,请参阅文档。我不确定此查询是否是我所需要的,因为我想计算图像数量超过某个阈值的用户数。能否更新您的问题以询问您真正想要的内容?有样本数据吗?你期望结果是什么?在你的问题中,我没有在json中看到任何关于用户或图像的信息。也许我们可以在?