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
-~----------~----~----~----~------~----~------~--~---