This package provides a simple method of creating Elasticsearch indexes for Django models.
Branch master
targets both Elasticsearch 2.x and 5.x and will receive new
features. Both elasticsearch-py 2.x and 5.x Python modules are currently
supported. Documentation
Branch 1.x
is the maintenance branch for the legacy 0.9.x versioned releases,
which targeted Elasticsearch versions less than 2.0. This branch is unlikely to
receive new features, but will receive required fixes.
Documentation
Using a version older than 0.9.0? Please be aware that as of v0.9.0, this package has changed in a backwards-incompatible manner. Version 0.5 is deprecated and no longer maintained.
Visit the django-simple-elasticsearch documentation on ReadTheDocs.
- class mixin with a set of
@classmethods
used to handle:
- type mapping definition
- individual object indexing and deletion
- bulk object indexing
- model signal handlers for pre/post_save and pre/post_delete (optional)
- management command to handle index/type mapping initialization and bulk indexing
- uses Elasticsearch aliases to ease the burden of re-indexing
- small set of Django classes and functions to help deal with Elasticsearch querying
- base search form class to handle input validation, query preparation and response handling
- multi-search processor class to batch multiple Elasticsearch queries via
_msearch
- 'get' shortcut functions
- post index create/rebuild signals available to perform actions after certain stages (ie. add your own percolators)
At the command line:
$ easy_install django-simple-elasticsearch
Or:
$ pip install django-simple-elasticsearch
Add the simple_elasticsearch application to your INSTALLED_APPS list:
INSTALLED_APPS = ( ... 'simple_elasticsearch', )
Add any models to ELASTICSEARCH_TYPE_CLASSES setting for indexing using es_manage management command:
ELASTICSEARCH_TYPE_CLASSES = [ 'blog.models.BlogPost' ]
django-simple-elasticsearch is licensed as free software under the BSD license.
- Review search classes - simplify functionality where possible. This may cause breaking changes.
- Tests. Write them.
- Documentation. Write it.