我将一些数据作为嵌套对象存储在ElasticSearch中,但聚合结果对我来说没有意义。不知道为什么在应用聚合过滤器时,我会在doc_count中有更多的嵌套对象。
with aggregation filter
without aggregation filter
的查询有效内容如下所示,删除必填部分将成为{
"from": 0,
"size": 0,
"aggregations": {
"requestedDimension": {
"nested": {
"path": "NESTED_PATH"
},
"aggregations": {
"requestedDimension": {
"filter": {
"bool": {
"must": [ // query for without filter will remove this must
{
"terms": {
"NESTED_PATH.PROP": [
"ITEM_1"
]
}
}
],
"disable_coord": false,
"adjust_pure_negative": true
}
},
"aggregations": {
"requestedDimension": {
"terms": {
"field": "NESTED_PATH.PROP1",
"size": 10
},
"aggregations": {
"userCount": {
"reverse_nested": {}
}
}
}
}
}
}
}
}
}
查询。
[£$](\d+,\d+\.\d+|\d+\.\d+|\d+)
答案 0 :(得分:0)
PROP
是一个高基数属性,因此整个前10个元素可能不是每个分片中的前10个元素。当我应用过滤器聚合时,它会过滤掉除前10个元素之外的所有元素,因此它可以确保计算所有前10个元素。