在Solr中按表达式排序

6

在SQL中,您可以按表达式排序,例如:

SELECT * FROM a
ORDER BY CASE WHEN a.Category = 20 THEN 1 ELSE 0 DESC

那么类别为20的记录将排在最前面。

这在Solr中是否可行?

3个回答

5

很抱歉,我们正在使用1.4版本,而sort函数的支持从3.1版本开始。谢谢! - Jan Jongboom

1

我已经接受了hross的答案,但在Solr 1.3及以上版本中也可以使用以下方法:

/select?q={!func}map(Category,20,20,1,0)&sort=score desc

很酷的是,你仍然可以按其他字段排序,例如:

&sort=score desc, name asc

0

1
这种提升的问题在于,您无法按其他字段排序(至少根据我所发现的)。 - Jan Jongboom

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接