2011-06-25 15 views
6

created_at:Sunspot: Niteliğe göre faset sonuçlarını sırala/düzenle ör. durumun ardından

Varlık modeli:

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

Denetleyici:

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

benim faset sıralamak istiyorum: Category_ides değil aracılığıyla: sayımı (hit sayısı). Kategoriler created_at tarafından sipariş edilmelidir. Belge yönüne bakın (: category_ids,: sort =>: count ||: index). Her iki seçenek de benim için çalışmaz.

Bu sipariş sorununu nasıl karşılarız?

cevap

8

sadece yönleriyle yüklemek ve daha sonra bunları kendiniz sıralayabilirsiniz:

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

İşleri cezası. Çok teşekkür ederim! – Chris

+0

Bitti, tekrar teşekkürler;) – Chris

İlgili konular