Фильтр не применяется к агрегации - PullRequest
0 голосов
/ 09 марта 2020

Я пытаюсь получить выставление счета за продукт, проданный конкретным c пользователем, но кажется, что запрос не применяется к агрегации суммы. Может ли кто-нибудь помочь мне, пожалуйста?

{
 "query": {
  "bool": {
    "filter": [
      { "term": { "seller": 1 } },
      {"term": { "product": 2 } }

     ]
   }
 },
 "size": 0,
 "aggs": {
 "product": {
   "terms": {
   "field": "product"
  },
  "aggregations": {
   "billing": {
    "sum": {
       "field": "price"
    }
  },
  "aggregation": {
    "bucket_sort": {
      "sort": [
        {
         "billing": {
         "order": "desc"
         }
        }
       ]
      }
     }
    } 
   }
  }
}

1 Ответ

0 голосов
/ 10 марта 2020

Попробуйте вложить существующие агрегации в агрегирование других терминов на "продавец".

{
  "query": {
    "bool": {
      "filter": [
        {
          "term": {
            "seller": 1
          }
        },
        {
          "term": {
            "product": 2
          }
        }
      ]
    }
  },
  "size": 0,
  "aggs": {
    "seller": {
      "terms": {
        "field": "seller",
        "size": 1
      },
      "aggs": {
        "product": {
          "terms": {
            "field": "product",
            "size": 1
          },
          "aggregations": {
            "billing": {
              "sum": {
                "field": "price"
              }
            },
            "aggregation": {
              "bucket_sort": {
                "sort": [
                  {
                    "billing": {
                      "order": "desc"
                    }
                  }
                ]
              }
            }
          }
        }
      }
    }
  }
}
...