Как запросить диапазон Elasticsearch для суммирования двух полей в Java API? - PullRequest
0 голосов
/ 20 мая 2019

В моих документах есть два поля: ACount и BCount, я хочу написать запрос диапазона, чтобы получить документы, где sum(ACount + BCount) > 100 через Java API. Я пытался сделать что-то вроде BoolQueryBuilder.must(QueryBuilders.rangeQuery(...).gte(100)), но не смог найти хороший способ сделать это. Кто-нибудь знает, как это сделать?

1 Ответ

0 голосов
/ 21 мая 2019

Для этого вам нужно использовать безболезненный скрипт.

{
  "query": {
    "bool": {
      "filter": [
        {
          "script": {
            "script": {
              "source": "(doc['ACount'].value + doc['BCount'].value) > params.count",
              "params": {
                "count": 100
              }
            }
          }
        }
      ]
    }
  }
}

Вы можете использовать Java-клиент для генерации вышеуказанного запроса.

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