У меня следующий скрипт-запрос, который работает, как и ожидалось.
{
"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 }
}
}
}
]
}
}
}