如何在 Sunspot Rails 中提升日期/日期时间字段



我想按新近度提高,但绝对不是按日期时间/日期字段排序(因为还有其他因素在起作用(。

如何在太阳黑子轨道中提升日期/日期时间字段?

太阳黑子没有内置的提升日期/日期时间字段的功能,但是,可以使用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",因此您需要将其包含在查询字符串中变量名称的末尾。

最新更新