我有以下脚本查询,可以正常运行。
{
"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 }
}
}
}
]
}
}
}