Implementation of bitmap indexes for document databases with different encodings. We support EQUALITY, RANGE and INTERVAL indexes with attribute value decomposition in a custom basis(I.E. you can use it as a BITSLICE index as it's done in Pilosa or as a simple BITMAP index.). Uses LMDB as a cache.
Build project:
cd /path/to/project
mkdir build
cd build
cmake ..
make -j4
Debug Build:
cd /path/to/project
mkdir build_debug
cd build_debug
cmake -DCMAKE_BUILD_TYPE=Debug ..
make -j4
All the necessary third party libraries are included, code is tested on Ubuntu 16.04 only for now. For another system you may need to compile with folly yourself.
We use Google Test for unit testing.
To run the tests: make test
Below is the list of relevant articles and papers:
Description of interval encoding for bitmap indexes.
Roaring bitmaps for better compression.
Keynote: About Bitmap Indexes
Description of what a bitmap index is.
LMDB database, good for a memory cache.