Riak Json is a JSON based document and query interface built on Riak and indexed by Solr.
Erlang Shell Makefile
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.



Riak Json is a JSON based document and query interface built on Riak and indexed by Solr. See docs/RELEASE_NOTES.md for versions/feature log.


From a Vagrant box

If you're familiar with Vagrant, you can download a pre-built Ubuntu 12.04 LTS VM, which has Oracle Java 7u25 and RiakJson pre-installed and running.

  1. Install VirtualBox

  2. Install Vagrant

  3. Download the riak_json-0.0.1.box file (880 Mb), add it to your local boxes list, and initialize a Vagrant VM:

    wget http://ps-tools.data.riakcs.net:8080/riak_json-0.0.1.box
    vagrant box add --name riak_json --provider virtualbox riak_json-0.0.1.box
    mkdir riak_json_vm
    cd riak_json_vm
    vagrant init riak_json
  4. Now you can bring up the VM, ssh to it, and test out Riak and RiakJson

    vagrant up
    vagrant ssh
    riak ping
    curl http://localhost:8098/ping

In addition, you may want to set up a pass-through port into the VM, so that you can make HTTP requests to RiakJson from your development machine. (In Vagrant terminology, the riak_json VM is the guest, and your dev machine would be the host).

Edit the Vagrantfile, and add or uncomment the line:

  config.vm.network :forwarded_port, guest: 8098, host: 10098

Inside the VM, change the Riak config file to listen to requests from the outside. Stop Riak first (sudo riak stop), then edit /etc/riak/riak.conf, and change the http listener to:

listener.http.internal =

Restart Riak (sudo riak start), exit the VM, and you should be able to make HTTP requests to Riak from the outside (accessing port 10098 gets routed to the VM's port 8098).

curl http://localhost:10098/ping

From a Pre-Built Ubuntu Package

If you have access to an Ubuntu 12.04 LTS 64-bit machine, with Oracle Java 7u25 installed on it, you can use a pre-built Riak+RiakJson package:

wget http://ps-tools.s3.amazonaws.com/riak_2.0.5-riak_json_0.0.4-aa73abc6-1_amd64.deb
dpkg -i riak_2.0.5-riak_json_0.0.4-aa73abc6-1_amd64.deb

If you need to uninstall a previous version of riak, you can run the dpkg 'purge' command:

dpkg -P riak

If you're curious about where the various Riak components go, you can list the files installed by the package:

dpkg -L riak_2.0.5-riak_json_0.0.4-aa73abc6-1_amd64.deb

(You still have to make sure Search/Yokozuna is enabled, by editing /etc/riak/riak.conf and ensuring that search = on)

From Source

See the Installing Riak From Source discussion for Riak pre-requisites, and the Yokozuna Install Docs for Yokozuna/Search pre-requisites (specifically, the part about 'Java 1.6 or later, Oracle 7u25 is recommended')

git clone https://github.com/basho/riak.git
cd riak && git checkout ack-riak-json


While in riak/ and on the ack-riak-json branch:

make rel


Verify that Search is enabled in rel/riak/etc/riak.conf

search = on

Start the server

./rel/riak/bin/riak start


Http Interface

# Download
git clone https://github.com/basho-labs/riak_json_http.git
cd riak_json_http

# Build

# Unit Test
make test

# Integration Test
make itest

Wire Interface (for MongoDB clients) (WORK IN PROGRESS)

# Download
# git clone https://github.com/basho-labs/riak_json_wire.git
# cd riak_json_wire

# Build
# make

# Unit Test
# make test

# Integration Test
# make itest


Please refer to docs/architecture.md for more information.

Http API Reference

Please refer to docs/demo.md and docs/query.md for information about how tu use RiakJson and for examples of queries.

RiakJson Clients and Projects