Ruby on Rails
SodaSearch Plugin

Soda Search (http://sodasearch.rubyforge.org/) is a medium-performance full-text indexing system. It is loosely based on the same principles as Xapian (www.xapian.org/).

The system is relatively simple. It consists of two database tables per class being indexed, plus some ActiveRecord extensions shared by all classes that use the Indexer.

The database tables are deliberately NOT normalized completely, to cut back on the computational overhead required to do searches and updates.

This system is quite useable as it is, but the index format it provides is also the foundation for a much more robust searching system. We will eventually implement phrase matching, term weighting, Boolean term combination, etc. This can all be accomplished with the current index format; all that needs to be done is modify the searching code.