Sunspot: сортировать / упорядочивать побочные результаты по атрибутам, например, создан в - PullRequest
6 голосов
/ 25 июня 2011

Модель актива:

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 через :count (количество попаданий).Категории должны быть заказаны по created_at.Глядя на документацию facet(:category_ids, :sort => :count || :index), оба варианта мне не подойдут.

Как решить эту проблему заказа для фасетов?

1 Ответ

8 голосов
/ 20 июля 2011

Вы можете просто загрузить аспекты и затем отсортировать их самостоятельно:

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 }
...