README file for Apache Blur
===========================

Apache Blur is a NoSQL data store built on top of Lucene, Hadoop, Thrift, 
and Zookeeper.  Tables consist of a series of shards (Lucene indexes)
that are distributed across a cluster of commodity servers.

Mail Lists
=========

User list blur-user@incubator.apache.org
Dev list blur-dev@incubator.apache.org

Website
=======

http://incubator.apache.org/blur/

Documentation
=============

http://incubator.apache.org/blur/docs/

The docs are also located in the docs/ directory in the binary 
artifact, use the index.html as a starting point.
