CheapSkate is a Solr emulator intended for situations where the basic functionality of Solr is needed or desired but a Java application server is not feasible (i.e. a cheap, shared webhosting account). It uses Ferret (a Ruby Lucene clone) for the fulltext indexing and faceting.

CheapSkate is very much a work in progress and development is based on responding to specific needs, rather than really trying to build an actual Solr clone (hence the current lack of XML responseWriter, for example).

Requirements:

sinatra
ferret
hpricot
uuid
json
faster_csv

Installation:

gem install cheap_skate

Getting Started:

$ cheapskate init my_new_cheapskate_project 

Note the 'project name' needs to be something that can be easily turned into a Ruby symbol.  Use underscores instead of dashes, don't start with a number, etc.
This (rake task) will create a new directory with subdirectories to store your CheapSkate configuration, Ferret index, logs, etc.

If you have an existing application with predefined schema.xml:

$ cd my_new_cheapskate_project
$ cheapskate convertschema xml=/path/to/schema.xml

This will take your existing schema document and migrate it to CheapSkate's YAML-based schema (as ./conf/schema.yml).

Modify ./conf/cheapskate.yml to taste.

$ rackup config.ru

Point a web client at http://localhost:9292/, you should see a "Welcome to CheapSkate" message.

Caveats:

CheapSkate isn’t really intended to replace Solr. If you need something that scales to millions of documents or performs replication or does all the neat things Solr does, use Solr.

Faceting causes a serious performance hit on large result sets due to the fact that the facet results require every document in the index to be loaded.

Todos:

Provide field boosting and analyzers both during index as well as query.

Add more responseWriters (starting with XML).