如何在动态字段上对solr结果库进行排序

时间:2016-03-17 10:10:37

标签: solr solrj solr4 solrnet solrcloud

感谢您抽出宝贵的时间。

我需要在动态字段的基础上对结果进行排序。 我怎样才能做到这一点 ? 当我对某些动态属性的最小值进行排序时。它没有给出正确的结果,因为我的查询类似于& sort = min(A_160018,A_chandigarh1)某些文档同时包含字段A_160018和A_chandigarh1,而某些文档没有字段,而某些文档有一个A_160018或A_chandigarh1用于某些结果doc。

你能帮助我吗?我怎样才能对这种动态场进行排序。

1 个答案:

答案 0 :(得分:1)

如果您不知道该字段是否存在,则可以设置默认值,以防该字段不存在。

尝试使用 def 函数,如果该字段不存在,则返回默认值。

//在这部分查询中,我已经设置了一个非常高的默认值,以便将结果放在列表的底部     &安培;排序=分钟(DEF(A_160018,9000000),DEF(A_chandigarh1,9000000))

solr def doc的摘录

  

def(field | function,defaultValue)返回字段“field”的值,   或者如果该字段不存在,则返回指定的defaultValue。

     

使用示例:def(rating,5)def()函数将返回   评级,或者如果文档中未指定评级,则返回5

请参阅reference solr documentation