如何将聚合与聚合一起用于Elasticsearch-DSL

时间:2019-09-03 12:09:06

标签: elasticsearch elasticsearch-aggregation elasticsearch-dsl

我正在使用聚合,并且聚合存储桶接受一个键值作为默认值,然后我进行研究并找到它

"aggs" : {
        "my_buckets": {
            "composite" : {
                "sources" : [
                    { "category_pk": { "terms": { "field": "category.pk"} } },
                    { "category_name": { "terms": {"field": "category.name" } } }
                ]
            }
        }
    }
}

以上代码产生两个键,和_doc_count,但我无法申请elasticsearch-dsl 有人帮我

  • 谢谢

1 个答案:

答案 0 :(得分:0)

当我们使用Composite

时,我解决了问题
s = ProductDocument.search()
brand_name = A('terms', field='brand.name')
brand_pk = A('terms', field='brand.id')
brand_key_aggs = [
    {'brand_pk': brand_pk},
    {'brand_name': brand_name}
]
s.aggs.bucket('brand_terms', Composite(sources=brand_key_aggs))

示例结果

 {  
               'key':{  
                  'brand_pk':869,
                  'brand_name':'Uni Baby'
               },
               'doc_count':2
            },