Skip to content
Provide high speed filtering and aggregation over data
JavaScript Python CSS HTML Shell Batchfile
Branch: dev
Clone or download

Latest commit

Fetching latest commit…
Cannot retrieve the latest commit at this time.


Type Name Latest commit message Commit time
Failed to load latest commit information.


Provide high speed filtering and aggregation over data see ActiveData Wiki Page for project details

Branch Status Coverage
master Build Status
dev Build Status Coverage Status
v1.7 Build Status

Use it now!

ActiveData is a service! You can certainly setup your own service, but it is easier to use Mozilla's!

curl -XPOST -d "{\"from\":\"unittest\"}"


  • Python2.7 installed
  • Elasticsearch version 6.x

Elasticsearch Configuration

Elasticsearch has a configuration file at config/elasticsearch.yml. You must modify it to handle a high number of scripts

script.painless.regex.enabled: true
script.max_compilations_rate: 10000/1m

We enable compression for faster transfer speeds

http.compression: true

And it is a good idea to give your cluster a unique name so it does not join others on your local network lahnakoski_dev

then you can run Elasticsearch:


Elasticsearch runs off port 9200. Test it is working

curl http://localhost:9200

you should expect something like

  "status" : 200,
  "name" : "dev",
  "cluster_name" : "lahnakoski_dev",
  "version" : {
    "number" : "1.7.5",
    "build_hash" : "00f95f4ffca6de89d68b7ccaf80d148f1f70e4d4",
    "build_timestamp" : "2016-02-02T09:55:30Z",
    "build_snapshot" : false,
    "lucene_version" : "4.10.4"
  "tagline" : "You Know, for Search"


There is no PyPi install. Please clone master branch off of Github:

git clone
git checkout master

and install your requirements:

pip install -r requirements.txt


The ActiveData service requires a configuration file that will point to the default Elasticsearch index. You can find a few sample config files in resources/config. simple_settings.json is simplest one:


The elasticsearch property must be updated to point to a specific cluster, index and type. It is used as a default, and to find other indexes by name.


Jump to your git project directory, set your PYTHONPATH and run

    cd ~/ActiveData
    export PYTHONPATH=.:vendor
    python active_data/ --settings=resources/config/simple_settings.json


If you have no records in your Elasticsearch cluster, then you must add some before you can query them.

Make a table in Elasticsearch, with one record:

curl -XPUT "http://localhost:9200/movies/movie/1" -d "{\"name\":\"The Parent Trap\",\"released\":\"29 July` 1998\",\"imdb\":\"\",\"rating\":\"PG\",\"director\":{\"name\":\"Nancy Meyers\",\"dob\":\"December 8, 1949\"}}"

Assuming you used the defaults, you can verify the service is up if you can access the Query Tool at http://localhost:5000/tools/query.html. You may use it to send queries to your instance of the service. For example:



The Github repo also included the test suite, and you can run it against your service if you wish. The tests will create indexes on your cluster which are filled, queried, and destroyed

    cd ~/ActiveData
    export PYTHONPATH=.:vendor
    # OPTIONAL, TEST_SETTINGS already defaults to this file
    export TEST_SETTINGS=tests/config/test_simple_settings.json
    python -m unittest discover -v -s tests
You can’t perform that action at this time.