2011-06-25 11 views
6

siguiente situación:Mancha solar: ordena/ordena los resultados de las facetas por atributo, p. Ej. created_at

modelo de Activos:

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

controlador:

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

quisiera ordenar mi faceta: Category_ides no a través de: recuento (número de visitas). Las categorías deben ser ordenadas por created_at. Mirando la faceta de documentación (: category_ids,: sort =>: count ||: index). Ambas opciones no funcionarán para mí.

¿Cómo puedo resolver este problema de pedido para las facetas?

Respuesta

8

Sólo puede cargar las facetas y luego ordenar a sí mismo:

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

funciona bien. Muchas gracias! – Chris

+0

Hecho, gracias de nuevo;) – Chris

Cuestiones relacionadas