Advanced search for a model (including keywords)


#1

Hello,

I am new in rails and I am working in an application which requires
advanced search.
I have a model called Item which has various attributes like “weight”,
“price”, “category”, “age”…and then it has some “keywords”,
describing the Item.

I would like to implement an advanced search where the users can
search Items using the attributes that they want.

After googling some time, I found that:

  • acts_as_taggable could be useful for the “keywords” attribute.
  • acts_as_ferret could be useful for searching the tags (I would need
    to search for multiple tags in the same query, include some fuzzy
    search…)
  • Searchlogic would be very useful to implement the search with all
    the attributes, but I am not sure if it can cope with the
    acts_as_taggable plugin, or if I should implement the keywords just
    using a String attribute, or how to do it.

Well, I know I have a lot of work to do, but I would really appreciate
if someone could give me some hints in order to point the direction in
which I should work. Which is the best way (or simplest) in your
opinion to implement this search?

The application will have to deal with “many” records (lets say
100.000), so I would also appreciate receiving some comments regarding
speed…however it doesn’t have to be the faster app in the world, in
this moment I prefer an easier development and I’ll improve the app in
the future if needed.

Thanks a lot for your help.


#2

It’s really basic search you’re looking for. 100,000 records is not
that many, use acts_as_ferret with a local index and you’ll be fine
for quite a while.


#3

I personally had many issues trying to use Ferret and would recommend
Sphinx with thinking sphinx plugin.


#4

Searchlogic is very plugin for search and i hoped it would help me
better in pagination but pagination is not at all working.

Any pupil facing such type of errors.
Thanks in advance


#5

And, besides using ferret or sphinx, should I also use
acts_as_taggable in order to manage the keywords for each item?