I’ve just released version 0.3.0. Since my last announcement I’ve done
a lot of work on improving the performance. With the C extension,
Ferret is now only 2-4 times slower than Lucene. There have also been
some performance improvements to the pure Ruby version too for those
that aren’t able to compile the extension. There have also been some
improvements to locking for those who have been having trouble. These
changes are detailed below.
Ferret is a full port of the Java Lucene searching and indexing
library. It’s available as a gem so try it out! To get started quickly
read the quick start at the project homepage;
Now, if you cancel a process while it has a lock open, the
lock should still be released. Also, you can set the index to auto
index = Ferret::Index::Index.new(:auto_flush => true)
This will make sure no locks are kept open after updating the index.
You won’t need to call flush anymore. This is very useful if you have
multiple processes modifying the index as you might have in a Rails
If you still have lock problems, the best way to get rid of the locks
is to use the unlock method of IndexReader. You’ll need to pass the
directory where the locks are placed.
directory = Ferret::Store::FSDirectory.new("/path/to/index") Ferret::Index::IndexReader.unlock(directory)