Hello, I am working with Ferret and acts_as_ferret. I have 9 different models that I am using for my search capability. acts_as_ferret is working beautifully when I do searches on a specific model. The problems come when I try to do a `search all` function. ================== I can easily get a proper collection using the following method: def search_all @results = [] [Announcement, Event, Group, Job, Need, Offering, Organization, Pedia, User].each do |model| finds = model.find_by_contents(@query) finds.each {|find| @results << find } unless finds.blank? end @results = @results.sort_by { |result| result.ferret_rank } @results.reverse! @total = @results.length end ================== The problems come in that I have no way to implement pagination, or specify any further details. I have been reading about Ferret::Index::MultiIndex does anyone know how to use it? It would be of great help as it does what I wish. --OR-- Does anyone have any suggestions for a better way to implement an effective search across many different indexes? Thanks!! --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To post to this group, send email to rubyonrails-talk-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk-unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en -~----------~----~----~----~------~----~------~--~---
fred.the.master-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org
2007-Sep-07 10:25 UTC
Re: acts_as_ferret MultiIndex
Check these posts, http://www.igvita.com/blog/2007/02/20/ferret-pagination-in-rails/ http://www.railsenvy.com/2007/2/19/acts-as-ferret-tutorial http://www.frederico-araujo.com/2007/9/6/multi-search-with-ferret i think it would be easier to modify their versions to match yours. :) good luck in one of my apps I did this: <pre> def search if params[:search_article] && params[:search_article][:q] != "" limit = 20 order_by = "title ASC" @articles = Article.full_text_search(params[:search_article] [:q], limit, order_by) order_by = "first_name ASC, last_name ASC" @users = User.full_text_search(params[:search_article][:q], limit, order_by) order_by = "first_name ASC, last_name ASC" @birthdays = Birthday.full_text_search(params[:search_article] [:q], limit, order_by) else @birthdays = [] @users = [] @articles = [] flash[:notice] = ''No fue encrontrado nada con esta criteria.'' end end </pre> model code: <pre> def self.full_text_search(q, limit, order_by) return nil if q.nil? or q=="" results = self.find_by_contents(q, :order => order_by, :limit => limit ) return results end </pre> --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To post to this group, send email to rubyonrails-talk-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk-unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en -~----------~----~----~----~------~----~------~--~---