I have the acts_as_ferret plugin installed. Everything searches great, but I would like to limit the results (i.e. by ''end_date'') and sort them (by ''end_date''). ''end_date'' is a valid column in my "posts" table. Here''s the code I have already: @posts = Post.find_by_contents(params[:query]) params[:query] comes from a form. I am replacing less efficent code that has the restrictions working : @posts = Post.find(:all, :conditions => [ ''(title LIKE :search_query OR body LIKE :search_query) AND end_date >= :enddate'', {:search_query => ''%'' + params[:query] + ''%'', :enddate => Time.now}], :order => ''end_date'') I realize i have to pass something similar to :conditions and :order, but I can''t seem to get ferret to bey the options. -- Posted via http://www.ruby-forum.com/.
I''ve installed acts_as_ferret just 2 seconds ago and I must say: It works splendit!! The following query works (might help you towards a solution): YourModel.find_by_contents(''id:"2"'') # Returns entries from yourmodels table with id=2. YourModel.find_by_contents(''name:"somename"'') # Only searches somename field.. etc..etc.. -- Posted via http://www.ruby-forum.com/.
This does also work: ModelName.find_by_contents(''id:( > 2) id:( < 5)'') Also see the Ferret RDOC: http://gemjack.com/gems/ferret-0.9.3/index.html -- Posted via http://www.ruby-forum.com/.
You should be able to sort the ferret results like this: @posts = Post.find_by_contents(params[:query], :sort => ["end_date"]) This post talked a little bit more about using ferret to sort results: http://lists.rubyonrails.org/pipermail/rails/2006-June/044513.html *Note: Whenever I tried to do this ferret would only sort the first page of results. So if ferret returned 100 results and each page had 10 items only the first 10 items would be sorted by the desired field. Of course I was probably doing something wrong. Let me know how this works out for you. -- Posted via http://www.ruby-forum.com/.