我想按新近度提高,但绝对不是按日期时间/日期字段排序(因为还有其他因素在起作用(。
如何在太阳黑子轨道中提升日期/日期时间字段?
太阳黑子没有内置的提升日期/日期时间字段的功能,但是,可以使用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",因此您需要将其包含在查询字符串中变量名称的末尾。