ES中reverse_nested+sum+bucket_sort

记一次嵌套sum聚合的排序DSL

场景:根据nested_gs2Entity.kw_entity聚合,filter对聚合结果过滤类型是产品,实体是需要关心的产品列表,在结果中sum互动量long_interaction,和花费long_paidPrice 然后在结果中根据sum的结果排序

 

{
    "aggregations":{
        "agg_entity_a":{
            "aggregations":{
                "filter_product_agg":{
                    "aggregations":{
                        "agg_entity_b":{
                            "aggregations":{
                                "reverse_nested_agg":{
                                    "aggregations":{
                                        "sum_long_interaction":{
                                            "sum":{
                                                "field":"long_interaction"
                                            }
                                        },
                                        "sum_long_paidPrice":{
                                            "sum":{
                                                "field":"long_paidPrice"
                                            }
                                        }
                                    },
                                    "reverse_nested":{

                                    }
                                },
                                "bucket_agg_a":{
                                    "bucket_sort":{
                                        "sort":[
                                            {
                                                "reverse_nested_agg>sum_long_interaction":"desc"
                                            }
                                        ]
                                    }
                                }
                            },
                            "terms":{
                                "field":"nested_gs2Entity.kw_entity",
                                "size":10
                            }
                        }
                    },
                    "filter":{
                        "bool":{
                            "must":[
                                {
                                    "term":{
                                        "nested_gs2Entity.kw_type":{
                                            "value":"product"
                                        }
                                    }
                                },
                                {
                                    "terms":{
                                        "nested_gs2Entity.kw_entity":[
                                            "欧莱雅男士劲能焕亮青春精华露",
                                            "欧莱雅金致臻颜花蜜奢养精华蜜",
                                            "欧莱雅金致臻颜牡丹奢养粉妍精华液",
                                            "欧莱雅青春密码酵素精华肌底液"
                                        ]
                                    }
                                }
                            ]
                        }
                    }
                }
            },
            "nested":{
                "path":"nested_gs2Entity"
            }
        }
    }
}

 

posted @ 2023-09-05 17:31  Joke科  阅读(62)  评论(0编辑  收藏  举报