Запросы функции solr с 'def'

Я пытаюсь использовать функцию solr 'def' с bf, но она не работает, как указано в документации.

В документации сказано: def — это сокращение от default. Возвращает значение поля "поле" или, если поле не существует, возвращает указанное значение по умолчанию. Возвращает первое значение, где exists()==true.

Примеры синтаксиса

def(rating,5): эта функция def() возвращает рейтинг или, если рейтинг не указан в документе, возвращает 5 def(myfield, 1.0): эквивалентно if(exists(myfield),myfield,1.0)

http://localhost:8983/solr/mycollection/select?q=name:milk&bf=if(exists(myfield),myfield,1.0)

or

http://localhost:8983/solr/mycollection/select?q=name:milk&bf=def(myfield,1.0)

Ожидаемый результат равен 1, если myfield не существует


person Diptee    schedule 18.02.2019    source источник


Ответы (1)


Вы забыли использовать defType=edisMax или disMax

defType=edismax&bf=def(myfield,1)

Вы также можете протестировать функцию def в полях fl, чтобы увидеть результат.

select?fl=def(myfield,10)
person Oyeme    schedule 18.02.2019