Я пытаюсь отфильтровать результаты с помощью запроса на скрипт. я могу получить доступ к значениям параметров с помощью закодированного значения поля, как это:Запрос сценария Elasticsearch получить параметр по значению поля
"script": "doc['price'].value * params.1000 > 4000",
"params": {"1000": "1.75"}
Но если я пытаюсь получить значение поля с доком нет фильтрации и я могу видеть все результаты.
"script": "doc['price'].value * params.doc['rate'] > 4000",
"params": {"1000": "1.75"}
Есть ли какое-либо решение для динамического получения значения параметра?
EDIT:
поле 'Скорость' является только ID. Это Integer, но это не значение, которое мне нужно. Идея состоит в том, чтобы передавать каждый раз различное значение через параметр, вместо этого часто изменяя поле «rate». Надеюсь, что это лучшее объяснение ...
пример:
"script": "doc['price'].value * params.doc['rate'] > 4000",
"params": {
"1000": "1.75",
"1001": "3.75",
"1002": "5"
}
if
'price' == 10 &&
'rate' == 1002
result should be: 10 * 5 > 4000
if
'price' == 10 &&
'rate' == 1001
result should be: 10 * 3.75 > 4000
if
'price' == 7 &&
'rate' == 1000
result should be: 7 * 1.75 > 4000
Это строка, к которой вы пытаетесь получить доступ? и какова фильтрация, которую вы ожидаете? – Kulasangar