python 中elsearch 分组查询

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

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值