0.0
No commit activity in last 3 years
No release in over 3 years
A Solr-like interface for situations where running a Java application server is not an option (such as shared web hosting).
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
 Dependencies

Runtime

 Project Readme
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).