6 Stimmen

Sunspot: Sortiere/ordne die Facetten-Ergebnisse nach Attribut, z. B. erstellt_am

Asset-Modell:

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

Controller:

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

Ich möchte mein Facettenelement :Kategorie_ids nicht nach :count (Anzahl der Treffer) sortieren. Die Kategorien sollen nach created_at geordnet werden. Wenn ich mir die Dokumentation ansehe facet(:category_ids, :sort => :count || :index), beide Optionen funktionieren für mich nicht.

Wie kann ich dieses Ordnungsproblem für Facetten lösen?

8voto

Maurício Linhares Punkte 38957

Sie können einfach die Facetten laden und sie dann selbst sortieren:

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 }

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X