Skip to content

A simple Solr emulator, written in Ruby, for situations where a Java application server isn't an option.

License

Notifications You must be signed in to change notification settings

rsinger/CheapSkate

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

53 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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

About

A simple Solr emulator, written in Ruby, for situations where a Java application server isn't an option.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages