>source

여기서 잘 작동하는 다음 쿼리가 있습니다.

{
   "aggs":{
      "category_terms":{
         "terms":{
            "field":"Category"
         },
         "aggs":{
            "style_per_category":{
               "terms":{
                  "field":"Style"
               }
            }
         }
      }
   }
}

이를 Elasticsearch DSL Python으로 변환하려고하는데 합성이 아닌 병렬 집계가 발생합니다 :

a_cat = A('terms', field='Category')
a_style = A('terms', field='Style')
s.aggs.bucket('category_terms', a_cat)
s.aggs.bucket('style_per_category', a_style)
response = s.execute()

출력으로 찾고있는 것은 다음과 같습니다 :

"aggregations": {
    "category_terms": {
      "doc_count_error_upper_bound": 0,
      "sum_other_doc_count": 2727399,
      "buckets": [
        {
          "key": "Tops",
          "doc_count": 3131952,
          "style_per_category": {
            "doc_count_error_upper_bound": 14,
            "sum_other_doc_count": 129758,
            "buckets": [
              {
                "key": "T-Shirts",
                "doc_count": 940725
              },
...


  • 답변 # 1

    다음과 같이 해보십시오 :

    s.aggs.bucket('category_terms', a_cat)
       .bucket('style_per_category', a_style)
    
    

    자세한 정보는 여기에서 찾을 수 있습니다

관련 자료

  • 이전 커스텀 파이썬 생성기에서 리턴 및 정지 반복
  • 다음 html - CSS로 Google recaptcha를 타겟팅하고 스타일을 지정하는 방법은 무엇입니까?