Solr函数查询,带“ def”

时间:2019-02-18 09:10:22

标签: solr boost-function

我正在尝试对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

1 个答案:

答案 0 :(得分:0)

您忘记使用defType = edisMax或disMax

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

您还可以在fl字段中测试def函数以查看输出

select?fl=def(myfield,10)