Search technique

hello all,

I need to implement search in my app. any one guide me which search
technique or plugin or gem is good for it.
the search must be too fast. i used ferret before. but if there is any
good
other than this then please reply me.

Thanks

Arun A.

Arun,

There are several search options out there, but I suggest you looking at
acts_as_solr (http://acts-as-solr.railsfreaks.com), it adds full text
search capabilities and many other nifty features from Apache‘s Solr to
any Rails model. The current release is 0.9 and the features include:

  • Advanced Full-Text Search Capabilities
  • Optimized for Low to High Volume Web Traffic
  • Faceted Search: easy implementation of faceted navigation system that
    enables a user to navigate the search results hierarchically
  • Indexing of Single Table Inheritances (STI’s)
  • Start and stop the Solr server with a simple rake command
  • Indexing of any custom method defined in you models
  • Ability of having multiple Solr instances running in the same servlet
  • You have the option to specify the field types when indexing if you‘d
    like to preserve its original Solr field type
  • Multi-model search, which can be used to execute a search across
    multiple models
  • Model association indexing: you can include any :has_one, :has_many,
    :belongs_to and :has_and_belongs_to_many association to be indexed
  • Boosting support for the entire document and/or on a per-field basis
  • Support for models that don’t use integer ids as the primary field


Thiago J.
acts_as_solr => http://acts-as-solr.railsfreaks.com

Arun A. wrote:

hello all,

I need to implement search in my app. any one guide me which search
technique or plugin or gem is good for it.
the search must be too fast. i used ferret before. but if there is any
good
other than this then please reply me.

Thanks

Arun A.

any idea about ferret…?

On 22/06/07, Thiago J. [email protected] wrote:

  • Optimized for Low to High Volume Web Traffic
  • Model association indexing: you can include any :has_one, :has_many,

hello all,
Thanks

Arun A.


Posted via http://www.ruby-forum.com/.


Arun A.

On Mon, Jun 25, 2007 at 04:27:36PM +0530, Arun A. wrote:

any idea about ferret…?

with acts_as_ferret (http://projects.jkraemer.net/acts_as_ferret) Ferret
can do all the things stated below, minus the need for a Java server :slight_smile:

And you don’t need a search server running at all when doing local
development and testing - the server component is only needed for
production usage.

Btw, what exactly does ‘Optimized for Low to High Volume Web Traffic’
mean?

Cheers,
Jens

On 22/06/07, Thiago J. [email protected] wrote:

[…]

like to preserve its original Solr field type

  • Multi-model search, which can be used to execute a search across
    multiple models
  • Model association indexing: you can include any :has_one, :has_many,
    :belongs_to and :has_and_belongs_to_many association to be indexed
  • Boosting support for the entire document and/or on a per-field basis
  • Support for models that don’t use integer ids as the primary field


Jens Krämer
http://www.jkraemer.net/ - Blog
http://www.omdb.org/ - The new free film database

On 25 Jun 2007, at 15:43, Jens K. wrote:

mean?
Ferret is fine for low traffic sites, but once traffic goes up,
things start to happen. I’m sure people on this list will know the
disastrous “segmentation fault” errors ferret is well known for. The
latest version of ferret has dealt with a lot of these bugs, so
things should be better. Also, ferret has no way of splitting up your
indexing to balance it over another server. All in all, I’ve switched
from ferret to solr and although I’m not a big java fan because of
its memory consumption, solr and the real lucene behind it blow away
ferret both in terms of speed and reliability.

Best regards

Peter De Berdt

On 26 Jun 2007, at 11:17, Jens K. wrote:

Thank you :slight_smile:
Point taken :slight_smile:

My experiences date back some time and my company has been the victim
of corrupted indexes, but having read the entry in your wiki (http://
projects.jkraemer.net/acts_as_ferret/wiki/DrbServer) makes me
consider ferret again to be honest. As I said, I’m not a big fan of
java because of its memory consumption and ease of use, but when our
app went haywire all the time, I went for solr running as a Tomcat
servlet and am still very happy with its performance.

On the other hand, acts_as_solr seems to have some new features that
are not in acts_as_ferret (and can come in handy).

Dilemmas, I really hate em :slight_smile: Anyway, thx for your input, good food
for thought :wink:

Best regards

Peter De Berdt

On Tue, Jun 26, 2007 at 09:29:40AM +0200, Peter De Berdt wrote:

production usage.

Btw, what exactly does ‘Optimized for Low to High Volume Web Traffic’
mean?

Ferret is fine for low traffic sites, but once traffic goes up,
things start to happen. I’m sure people on this list will know the
disastrous “segmentation fault” errors ferret is well known for. The
latest version of ferret has dealt with a lot of these bugs, so
things should be better.

Recent Ferret only segfaults or corrupts the index when multiple
processes write-access the index at the same time. This is a well-known
and discussed issue and one that can easily be solved by doing the
indexing with a single process, i.e. some backend server solution just
as solr is one, too.

Also, ferret has no way of splitting up your indexing to balance it
over another server.

Right, Ferret doesn’t have that feature. I didn’t miss it, yet.

All in all, I’ve switched from ferret to solr and although I’m not a
big java fan because of its memory consumption, solr and the real
lucene behind it blow away ferret both in terms of speed and
reliability.

Acts_as_ferret brings an indexing server that will handle all indexing
in production environments, so you’ll see no segfaults or other problems
at all. Plus you get features like index versioning and background
rebuilds.

For the speed, Solr and acts_as_ferret/DRb seem to be pretty up to par,
with a slight advantage for Ferret according to this benchmark (not done
by me, but by a user of aaf):

I’m not at all into search engine flamewars, but please hold to the
facts and don’t post any unproven generalized speed estimates.
Thank you :slight_smile:

Regarding the stability you might like to have a look at projects like
omdb.org which runs Ferret for lots of live searches and the main site
search. it has a background indexer that is busy reindexing stuff as
soon as something on the page is changed - it runs without a single
hickup for months now. The project’s code is MIT licensed, so you can
even have a look at how it’s done under the hood.

cheers,
Jens


Jens Krämer
http://www.jkraemer.net/ - Blog
http://www.omdb.org/ - The new free film database