我正在尝试对bf使用solr'def'函数,但是它无法按文档中的说明工作
文档说: def是默认值的缩写。返回字段“ field”的值,或者如果该字段不存在,则返回指定的默认值。产生第一个值,该值在exist()== 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)
或
http://localhost:8983/solr/mycollection/select?q=name:milk&bf=def(myfield,1.0)
如果myfield不存在,则预期结果为1
答案 0 :(得分:0)
您忘记使用defType = edisMax或disMax
defType=edismax&bf=def(myfield,1)
您还可以在fl字段中测试def函数以查看输出
select?fl=def(myfield,10)