Как установить условие агрегации вasticsearch - PullRequest
0 голосов
/ 15 октября 2019

Допустим, у меня есть индекс

  "products": {
    "aliases": {},
    "mappings": {
      "products": {
        "properties": {
          "id": {
            "type": "long"
          },
          "price": {
            "type": "double"
          },
          "discount": {
            "type": "double"
          },
          "name": {
            "type": "text",
            "fields": {
              "keyword": {
                "type": "keyword",
                "ignore_above": 256
              }
            }
          }
        }
      }
    }
  }
}

Мне нужно получить все товары со скидками в диапазоне 0-10, ценовом диапазоне 5-20 и общей ценой которого должно быть меньше 200.

Я знаю, как фильтровать поля

{
  "query": {
    "bool": {
      "must": [
        {
          "range": {
            "price": {
              "from": 5,
              "to": 200,
              "include_lower": true,
              "include_upper": true,
              "boost": 1.0
            }
          }
        },
        {
          "range": {
            "discount": {
              "from": 0,
              "to": 10,
              "include_lower": true,
              "include_upper": true,
              "boost": 1.0
            }
          }
        }
      ]
    }
  }
}

Кроме того, я знаю, как агрегировать цену

  "aggregations": {
    "total_price": {
      "sum": {
        "field": "price"
      }
    }
  }

Но как установить границу для этой total_price?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...