У меня есть очень сложная и длинная функция в моем параметре повышения. Эта функция всегда будет возвращать значение от 1 до 50. Я бы хотел, чтобы результаты этой функции были включены в параметр fl.
Первый вопрос: могу ли я ссылаться на результаты повышения в параметре fl без необходимости передавать функцию СНОВА в параметре fl?
Второй вопрос: если я назначу переменную функции повышения, а затем сошлюсь на эту переменную в параметре fl, будет ли SOLR выполнять вычисления дважды? (я имею в виду один раз для поля повышения и еще один в поле fl)
моя функция параметра boost выглядит так:
boost=sum(div(5,map(abs(sub(x,y)),0,0,VALUE), termfreq(...), dist(2,0,0,x,y),.....)
приведенная выше функция является лишь кратким примером того, как может выглядеть повышение. Кроме того, эта функция повышения динамически генерируется. Использую edismax и SOLR v7.6





Подстановка параметров происходит до того, как в Solr произойдет что-либо внутреннее, поэтому в этом случае она будет вычисляться дважды.
Вы можете добавить debug=results к своей строке запроса, чтобы получить подробную информацию о том, насколько каждая часть вашего запроса повлияла на оценку, и вы сможете извлечь количество примененного повышения из этой отладочной информации (и не вычислять его дважды). Вы можете добавить debug.explain.structured=true, чтобы информация объяснения возвращалась в виде правильной структуры, а не в виде форматированного текста (с новыми строками и т. д.).