按SolR中的特定顺序排序

时间:2016-02-19 16:29:30

标签: solr

我想按"格式"对数据进行排序,订单为4002,4009,最后是999。

所以这种方式不起作用:" sort = desc size"。

你知道我该怎么做吗?

此致 劳伦

1 个答案:

答案 0 :(得分:0)

如果这些是仅存在的三个值,则可以按函数查询进行排序。

或者,您可以滥用q功能为每个匹配提供不同的权重,然后在fq中使用您的实际查询(因为过滤查询是非得分的)。即q=format:4002^10 format:4009^5 format:999^1

如果您想在函数查询中执行此操作,您应该能够使用iftermfreq函数的组合来为每个术语提供排序值:

sort=if(termfreq(format,'4002'),1,if(termfreq(format,'4009'),2,if(termfreq(format,'999'),3,4))) asc