query = {"query": {
"bool": {
"must": [
{"range": {'ymd': {
'gte': '',
'lte': ''
}
}
}
]
}
},
'size': 1000,
"aggs": {
"camera_ids": {
"terms": {"field": "camera.deviceId"},
"aggs": {
"all_ymd": {
"terms": {"size": 500000, "field": "ymd"},
"aggs": {
"aaa": {
"terms": {"field": "photo.aaa_num"}
},
"bbb": {
"terms": {"field": "bbb_num"}
},
"outerFlag":{
"terms": {"field": "flag"}
},
"innerFlag":{
"terms": {"field": "moumou.flag"}
}
}
}
},
}
}
}
allDoc = es.search(index=index, doc_type=doc_type, body=query)
#根据分组的结果计算总数:
lou=filter(lambda x:x['key']==99,data['outerFlag']['buckets'])
other_lou=filter(lambda x:x['key']==99,data['innerFlag']['buckets'])
lou_count=sum(map(lambda x: x['doc_count'], lou))+sum(map(lambda x: x['doc_count'], other_lou))
wu = filter(lambda x: x['key'] == -1, data['outerFlag']['buckets'])
other_wu = filter(lambda x: x['key'] == -1, data['innerFlag']['buckets'])
wu_count = sum(map(lambda x: x['doc_count'], wu))+sum(map(lambda x: x['doc_count'], other_wu))
elsearch 过滤聚合: https://blog.csdn.net/dm_vincent/article/details/42757519