Странное поведение Elasticsearch Painless script - PullRequest
0 голосов
/ 20 сентября 2018

У меня следующий скрипт-запрос, который работает, как и ожидалось.

  {
    "query": {
      "bool": {
        "must": [
            {"range": { "a": { "gte": 0 }} },
            {"range": { "b": {"gte": 0}} },
          {
            "script": {
              "script": {
                "source": "doc['a'].value <= doc['b'].value * (1 - params.percent)",
                "lang": "painless",
                "params": { "percent": 0.80 }
              }
            }
          }
        ]
      }
    }
  }

Но следующий скрипт-запрос, который имеет ту же логику, но перемещает логику division by 100 в source поле, дает другой результат.Результат не меняется при изменении значения params.percent

  {
    "query": {
      "bool": {
        "must": [
            {"range": { "a": { "gte": 0 }} },
            {"range": { "b": {"gte": 0}} },
          {
            "script": {
              "script": {
                "source": "doc['a'].value <= doc['b'].value * (1 - params.percent/100)",
                "lang": "painless",
                "params": { "percent": 80 }
              }
            }
          }
        ]
      }
    }
  } 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...