Créer un attribut personnalisé pour sunspot

Bonjour,

J’utilise sunspot avec le moteur de recherche solr pour effectuer des recherches sur mes sites en ruby. J’ai parfois besoin de filter sur un attribut personnalisé, par exemple une string comprenant la date de l’article et son titre. Pour cela, il suffit de créer une fonction dans notre model qui retourne une string et de demander à sunspot de l’indexer.

Par exemple, si je veux pouvoir filter sur le titre et le mois:

class Post < ActiveRecord::Base

  def mycustomtitle
    self.title + self.created_at.strftime('%m')
  end

  searchable do
     string :myCustomTitle
  end
end

Je peux alors faire dans un controller quelque chose comme ca :

   @search = Sunspot.search Post do
        with(:myCustomTitle, "test-05")
        order_by :created_at, :desc
        paginate :page => params[:page], :per_page => 6
    end
    @posts = @search.results

Sunspot me retournera alors que les posts qui ont comme myCustomTitle() la string “test-05″

Bonne programmation.