acts_as_ferret problems
On one of our clients site, we’ve been using the acts_as_ferret plugin for about six months. The site runs on OS X server, and everything works great. Search is blazing fast, and record insert and update are acceptable. Everything was wonderful. Until we moved to Linux.
Last week, we stood the site up on a linux server to get ready for our move to a new datacenter. The site was easy to set up and is now running mongrel and apache mod_proxy_balancer. Everything was going well until we got an error saying:
StandardError (: Error occured at
:701 Error: exception 2 not handled: Error decoding input string. Check that you have the locale set correctly ):
A little bit of googling pointed me to an explanation for the error. I spent about three hours trying various combinations of LANG settings to no avail. I upgraded and downgraded both ferret and the plugin. Nothing helped.
Finally, I found an unrelated message that talked about switching from cFerret to rFerret. I gave it a shot by changing the require in init.rb from ferret to rferret. That did it. It now takes about 30 times as long to index the pages, and searching went from instantaneous to taking about 1 second. I would certainly prefer things to be faster, but at least they work.
So, long story short, if you have errors in ferret, try switching to the pure ruby version. This is a great example of one of the problems with really complex software. Ferret is a wonderful program when it works, but when it doesn’t it can be a complete pain!
Posted by Mike Mangino on Monday, August 28, 2006