我想通过新近度来提升,但不是绝对按日期时间/日期字段排序(因为还有其他因素在起作用)。
如何在太阳黑子Rails中提升日期/日期时间字段?
答案 0 :(得分:1)
太阳黑子没有内置功能来提升日期/日期时间字段,但是,使用solr本身可以这样做,如本文所示:
https://wiki.apache.org/solr/FunctionQuery#Date_Boosting
幸运的是,太阳黑子提供了一种手动将参数添加到solr查询的方法。你要做的是确保你用来提升的日期字段包含在model.rb上的可搜索块中:
searchable do
time :datetime_field, stored: true, trie: true
end
然后,在您的models_controller.rb中的搜索块中,添加日期提升功能:
@search = Model.search do
# perform search
adjust_solr_params do |sunspot_params|
sunspot_params[:boost] = 'recip(ms(NOW,datetime_field_dts),3.16e-11,1,1)'
end
end
请注意,太阳黑子会在时间字段的末尾添加“_dts”,因此您需要在查询字符串的变量名末尾包含此内容。