Я пытаюсь использовать функцию solr 'def' с bf, но она не работает, как указано в документации
В документации сказано: def - это сокращение по умолчанию.Возвращает значение поля «field» или, если поле не существует, возвращает указанное значение по умолчанию.Возвращает первое значение, где существует () == true.
Примеры синтаксиса
def (rating, 5): эта функция def () возвращает оценку, или если оценка не указана в документе, возвращает 5 def (myfield, 1.0): эквивалентно if (существует (myfield), myfield, 1.0)
http://localhost:8983/solr/mycollection/select?q=name:milk&bf=if(exists(myfield),myfield,1.0)
или
http://localhost:8983/solr/mycollection/select?q=name:milk&bf=def(myfield,1.0)
Ожидаемый результат равен 1, если myfield не существует
Вы забыли использовать defType = edisMax или disMax
defType=edismax&bf=def(myfield,1)
Вы также можете проверить функцию def в полях fl, чтобы увидеть вывод
select?fl=def(myfield,10)