acts_as_ferrett: easy, efficient full-text search for Rails applications
Based on a tip from Russell Williams, I’ve played a little bit with acts_as_ferret and like what I see so far.
Ferret is a port of the Lucene full-text engine for Ruby, and acts_as_ferret is a plugin for Rails that makes it easy to make any ActiveRecord model full-text searchable.
Roman Mackovcak provides a set of ferret recipes, including how to do pagination, which is not supported out of the box.
Ferret supports the same rich query syntax that Lucene does te?t matches test), fuzzy matching based on Levenshtein distance (dictonary~ matches dictionary), proximity searches, range searches, keyword weight, and boolean operators.
Update: Dion notes that Ferret no longer uses the Lucene file format, unfortunately.. The file format was changed in order to improve performance.