[jifty-devel] [fwd] [geek] Rails acts_as_ferret rocks my world!
(from: eric.kidd)
jesse
jesse at fsck.com
Fri Jul 7 15:04:31 EDT 2006
I want this :)
----- Forwarded message from Eric Kidd ----
Date: Fri, 7 Jul 2006 14:57:33 -0400
From: Eric Kidd
To: "A list for people with geeky interests."
Subject: [geek] Rails acts_as_ferret rocks my world!
OK, now to say something nice about somebody's software. :-)
Today, I added full text indexing to a Rails application. Here are the
steps:
$ sudo gem install ferret
$ script/plugin install
svn://projects.jkraemer.net/acts_as_ferret/tags/plugin/stable/acts_as_ferret
Edit my Ticket class to add the following code:
acts_as_ferret :fields => %w(title created_at updated_at)
Edit my Update class to add the following code:
acts_as_ferret :fields => %w(comment created_at user updated_fields)
# Support for ferret indexing of non-standard fields.
def content_for_field_name name
case name.to_sym
when :user
user.name
when :updated_fields
updated_fields.map {|f| "#{f.from} #{f.to}" }.join(", ")
else
super
end
end
Then I ran script/console, and typed in the following queries:
>> Ticket.find_by_contents("search").length
=> 1
>> Ticket.find_by_contents("search")[0].title
=> "Basic search implementation"
>> Update.find_by_contents("Unicode").length
=> 2
acts_as_ferret automatically built fast, full-text indices for all the
records in my database, and keeps them up to data. The query language
is user-friendly, too.
This is how quality software should work. :-)
-Eric, delighted by how painless that was
----- End forwarded message -----
--
More information about the jifty-devel
mailing list