我为我的应用程序设置了太阳黑子,其中我们有两个日期字段 字段
date_of_a
date_of_b
我希望按日期字段对记录进行排序,只按给定的顺序排列,即a > b > c ....
所以我设置我的搜索
Sunspot.search(Model) do
order_by(:date_of_a, :desc)
order_by(:date_of_b, :desc)
..
end
现在让我说我有4个文件
document 1 => date_of_a = 10/2/10
document 2 => date_of_a = 10/2/12
document 3 => date_of_b = 10/2/15
document 4 => date_of_a = 10/2/9
当我尝试搜索它时,按照以下顺序给出了记录
document 2 => date_of_a = 10/2/12
document 1 => date_of_a = 10/2/10
document 3 => date_of_b = 10/2/15 #this document doesn't have `date_of_a`
document 4 => date_of_a = 10/2/9
但这不是我想要的,我希望它按照最新日期排序,无论它是哪个日期
所以所需的结果就像
document 3 => date_of_b = 10/2/15 #this document doesn't have `date_of_a`
document 2 => date_of_a = 10/2/12
document 1 => date_of_a = 10/2/10
document 4 => date_of_a = 10/2/9
答案 0 :(得分:0)
创建一个返回两个日期中最大值的方法。然后对该方法编制索引:
def latest_date
[date_of_a, date_of_b].max
end
searchable do
date :latest_date
end