Join GitHub today
GitHub is home to over 31 million developers working together to host and review code, manage projects, and build software together.Sign up
A simple Solr emulator, written in Ruby, for situations where a Java application server isn't an option.
Fetching latest commit…
Cannot retrieve the latest commit at this time.
|Type||Name||Latest commit message||Commit time|
|Failed to load latest commit information.|
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).