2011-06-25 76 views
6

以下情况:太阳黑子:按属性对属性进行排序/排序。 created_at

资产模型:

searchable do 
    text :title 
    text :description 
    time :created_at 
    integer :category_ids, :multiple => true, :references => Category 
end 

控制器:

search = Asset.search() do 
    keywords(h(params[:query]), :fields => [:title, :description]) 
    facet(:category_ids) 
    order_by :created_at 
end 

我想我的排序方面:不通过Category_ides:计数(命中数)。这些类别应该由created_at进行排序。查看文档构面(:category_ids,:sort =>:count ||:index)。这两个选项不会为我工作。

如何解决此方面的订单问题?

回答

8

你可以只加载面,然后自己对它们进行排序:

result = Product.solr_search do |s| 
    s.keywords params[:q] 
    s.facet :category_id 
    s.paginate :per_page => 3, :page => @page 
end 

facet_rows = result.facet(:category_id).rows.sort { |left,right| left.instance.created_at <=> right.instance.created_at } 
+0

工作正常。非常感谢! – Chris

+0

完成,再次感谢;) – Chris