Skip to content


Subversion checkout URL

You can clone with
Download ZIP
ActiveRecord extension for MySql dbs enabling fulltext searching by allowing a model to connect to a MyISAM mirror of an InnoDB table
Branch: master
Failed to load latest commit information.
log adding log dir


Warren 0.1.0

© Copyright 2009 Sidu Ponnappa. All Rights Reserved.

Warren is a MySQL only ActiveRecord extension that enables full-text search on a MySQL database. MySQL supports full-text searches only on MyISAM tables; unfortunately MyISAM tables don't support transactions, which is why you rarely see them in Rails applications. The more commonly used InnoDB tables on the other hand don't support full-text searches.

Warren (moderately) transparently bridges the gap by enabling the creation, mirroring (via triggers) and full-text search of MyISAM tables for any existing transactional InnoDB table. This is a lightweight alternative to full-fledged search tools like Sphinx or Lucene, but is limited to the MySQL database.

MySQL Fulltext Search

MySQL fulltext search (which uses a MATCH query) has its own quirks which make it behave slightly differently from a normal find which filters with a WHERE or LIKE. Most notably:

* No rows are returned unless the MATCH clause filters out at least 50% of the rows in the table in two of the three fulltext search modes
* The only search mode where the 50% rule doesn't apply is Warren::Modes::Boolean, but here the search pattern cannot have any wildcards on the left side. In SQL terms, a boolean mode fulltext search only allows 'pattern%' and not '%pattern%'

For more information, look up

Something went wrong with that request. Please try again.