Table of Contents
Welcome to Ferret
Ferret is a high-performance, full-featured text search engine library written for Ruby. It is inspired by Apache Lucene Java project.
Latest News
>> Sunday April 20, 6:30pm
Apologies to everyone who has been following along with the development in the subversion repository. We've recently moved development to git and I've been having some trouble keeping everything in sync. I never worked out exactly what the problem was but it may have had something to do with conflicting version of git that I've been using. Anyway, everything seems to be working now and you should be able to read the full history of commits in the timeline rather than just the git merge messages that were occasionally appearing before.
>> Thursday April 17, 8:00am
You can now check the coverage reports from gcov here.
>> Thursday November 29, 9:00am
Ferret 0.11.6 released. This is a bug fix release to remove a problem with term vectors that was introduced in Ferret 0.11.5. This bug was affecting highlighting when combined with the Standard analyzer or any other analyzer which removes stop words. It is highly recommended you upgrade to this release. Windows users, however, needn't worry as this bug does not affect them. There will be no 0.11.6 win32 gem.
Note: You will need to rebuild your index if it was built with or modified by version 0.11.5. Indexes built with earlier 0.11.* versions should be fine.
Ferret Documentation
Buy the print edition of the Ferret book now!
Or you can download the PDF from O'Reilly. There is also a French version translated by Jérémie Bordier
Synopsis
With the introduction of Ferret, Ruby users now have one of the fastest and most flexible search libraries available. And it's surprisingly easy to use.
This Short Cut will show you how to quickly get up and running with Ferret. You'll learn how to index different document types such as PDF, Microsoft Word, and HTML, as well as how to deal with foreign languages and different character encodings. This document describes the Ferret Query Language in detail along with the object-oriented approach to building queries.
You will also be introduced to sorting, filtering, and highlighting your search results, with an explanation of exactly how you need to set up your index to perform these tasks. You will also learn how to optimize a Ferret index for lightning fast indexing and split-second query results.
If you like Ferret, please help us out
Donations of any amount will be greatly appreciated and help to keep Ferret development moving forward. If you have any questions, check out the DonationsFAQ. See FerretDonors for a list of donors.
Requirements
- Ruby 1.8
- C compiler and Make to build the extension. gcc is preferred on *nix systems, VC6 on windows.
Download
You can get the stable version at RubyForge. You can get the latest version of Ferret using subversion.
Installation
Gem Install
If you have RubyGems installed, installing Ferret is simple and safe. You can easily remove it if you don't like it.
gem install ferret
Usage
You can read the tutorial for a quick introduction to using ferret.
You should also check out the book Lucene In Action. It's about Apache Lucene so it'll help if you know Java but everything in there should be translatable to Ruby. If you need help, visit the mailing list. Your questions will be answered.
Logos
Other logos including the original logos by Jan Prill can be found on the FerretLogos page.
Performance
Ferret is now faster than Apache Lucene (even when it is compiled using gcj). How much faster? Try it for yourself and add your benchmark results.
Authors
[Dave Balmain] Port to Ruby
[The Apache Software Foundation (Doug Cutting and friends)] Original Apache Lucene
License
Ferret is available under an MIT-style license.


