我在我的Rails应用程序中使用Solr sunspot
gem。我现在拥有的:order_by(:some_time, :desc)
。我需要做的是:
如果:some time
列值在最后一小时内,那么具有此条件的所有记录都按:status
列排序,否则由:some_time
我在文档中找不到任何类似内容,我不确定实现它的好方法。
PS:我在solr搜索完成后尝试进行分组和排序,但它看起来很重,我相信事情应该是一致的,所以如果有机会用solr做,我想去做。答案 0 :(得分:0)
太阳黑子宝石会让你说order_by_function
使用Solr的functional ordering ability(寻找"按功能搜索")。因此,我认为你可以做到这一点或类似的事情(未经测试):
order_by_function(:map, [:ms, [:NOW, :some_date], '0', '3600000', '0'], :status)
换句话说:找到文档的年龄(以毫秒为单位),以及1小时内的任何内容"展平"为0(所以他们都绑在一起)。通过按状态排序来打破联系。看起来应该有用,对吗?