我正在与 Sunspot & Mongoid 合作。需要按相关性(分数)值排序,然后是事件日期。要做到这一点,你应该这样做
Article.search do
keywords params[:query]
order_by :score, :desc
order_by :article_date, :asc
end
但这不起作用。而是按 article_date 排序。如果我删除 article_date,它会根据分数正确排序。如果我使用 article_date 和另一个字段进行排序,说标题而不是分数,它也可以正常工作。
这是我的宝石版本
使用 sunspot (1.3.0) 使用 sunspot_rails (1.3.0) 使用 sunspot_mongoid (0.4.1) 使用 sunspot_solr (1.3.0)
我的工作基于此示例:Solr/Lucene 是否可以先按相关性排序,然后按第二个属性?还有太阳黑子的文档http://sunspot.github.com/sunspot/docs。
任何想法?
[更新]
认为这可能与我循环结果而不是命中有关,我尝试了两种情况:
Post.search.results.each do |result|
AND
Post.search.each_hit_with_result do |hit, result|
唉,同样的事情。