Simple ElasticSearch indexing integration for Django.
Project description
===========================
Django Simple Elasticsearch
===========================
.. image:: https://badge.fury.io/py/django-simple-elasticsearch.png
:target: http://badge.fury.io/py/django-simple-elasticsearch
.. image:: https://travis-ci.org/jaddison/django-simple-elasticsearch.png?branch=1.x
:target: https://travis-ci.org/jaddison/django-simple-elasticsearch
.. image:: https://coveralls.io/repos/jaddison/django-simple-elasticsearch/badge.png
:target: https://coveralls.io/r/jaddison/django-simple-elasticsearch
This package provides a simple method of creating Elasticsearch indexes for
Django models.
**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.**
-----
Documentation
-------------
Visit the `django-simple-elasticsearch documentation on ReadTheDocs <http://django-simple-elasticsearch.readthedocs.org/>`_.
Features
--------
* class mixin with a set of :code:`@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 :code:`_msearch`
* 'get' shortcut functions
* post index create/rebuild signals available to perform actions after certain stages (ie. add your own percolators)
Installation
------------
At the command line::
$ easy_install django-simple-elasticsearch
Or::
$ pip install django-simple-elasticsearch
License
-------
**django-simple-elasticsearch** is licensed as free software under the BSD license.
Todo
----
* Review search classes - simplify functionality where possible. This may cause breaking changes.
* Tests. Write them.
* Documentation. Write it.
History
-------
1.0.0 (2016-12-20)
---------------------
* Updated 0.9.x codebase version to 1.0.0.
* Reversed decision on the deprecation of the 0.9.x codebase - it will be maintained in this new 1.x branch, although new functionality will mostly occur on newer releases.
* Adding cleanup command to remove unaliased indices.
* Added ELASTICSEARCH_DELETE_OLD_INDEXES setting to auto-remove after a rebuild.
* Thanks to Github user @jimjkelly for the index removal inspiration.
0.9.16 (2015-04-24)
---------------------
* Addressing Django 1.8 warnings.
0.9.15 (2015-01-31)
---------------------
* BUGFIX: Merging pull request from @key that addresses Python 3 support (management command now works).
0.9.14 (2015-01-31)
---------------------
* BUGFIX: Adding in missing `signals.py` file.
0.9.13 (2015-01-30)
---------------------
* Added in new `post_indices_create` and `post_indices_rebuild` signals to allow users to run actions at various points during the index creation and bulk indexing processes.
0.9.12 (2014-12-17)
---------------------
* fixed an issue where per-item request parameters were being added to the bulk data request JSON incorrectly. Tests updated.
0.9.11 (2014-12-08)
---------------------
* added warning if Django's DEBUG=True (causes out of memory errors on constrained
systems due to Django query caching)
* added index setting modification on rebuilding indices to remove replicas, lucene
segment merging and disabling the refresh interval - restoring the original
settings afterwards.
0.9.10 (2014-12-04)
---------------------
* added `page` and `page_size` validation in `add_search()`
0.9.9 (2014-11-24)
---------------------
* Renamed search form related classes - more breaking changes. Added in support
for Django's pagination classes (internal hack).
0.9.8 (2014-11-23)
---------------------
* Revamped search form related classes - includes breaking changes.
0.9.7 (2014-11-16)
---------------------
* Python3 supported mentioned in PyPi categorization; new testcases added. Minor
interface change (added `@classmethod`).
0.9.6 (2014-11-16)
---------------------
* Python 3.3+ support, modified (no new) testcases.
0.9.5 (2014-11-15)
---------------------
* Added in tox support, initial set of test cases and verified travis-ci is working.
0.9.2 (2014-11-12)
---------------------
* Fixed broken management command.
0.9.1 (2014-11-10)
---------------------
* Added missing management command module.
0.9.0 (2014-11-10)
---------------------
* In what will become version 1.0, this 0.9.x codebase is a revamp of the
original codebase (v0.5.x). Completely breaking over previous versions.
0.5.0 (2014-03-05)
---------------------
Final release in 0.x codebase - this old codebase is now unmaintained.
Django Simple Elasticsearch
===========================
.. image:: https://badge.fury.io/py/django-simple-elasticsearch.png
:target: http://badge.fury.io/py/django-simple-elasticsearch
.. image:: https://travis-ci.org/jaddison/django-simple-elasticsearch.png?branch=1.x
:target: https://travis-ci.org/jaddison/django-simple-elasticsearch
.. image:: https://coveralls.io/repos/jaddison/django-simple-elasticsearch/badge.png
:target: https://coveralls.io/r/jaddison/django-simple-elasticsearch
This package provides a simple method of creating Elasticsearch indexes for
Django models.
**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.**
-----
Documentation
-------------
Visit the `django-simple-elasticsearch documentation on ReadTheDocs <http://django-simple-elasticsearch.readthedocs.org/>`_.
Features
--------
* class mixin with a set of :code:`@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 :code:`_msearch`
* 'get' shortcut functions
* post index create/rebuild signals available to perform actions after certain stages (ie. add your own percolators)
Installation
------------
At the command line::
$ easy_install django-simple-elasticsearch
Or::
$ pip install django-simple-elasticsearch
License
-------
**django-simple-elasticsearch** is licensed as free software under the BSD license.
Todo
----
* Review search classes - simplify functionality where possible. This may cause breaking changes.
* Tests. Write them.
* Documentation. Write it.
History
-------
1.0.0 (2016-12-20)
---------------------
* Updated 0.9.x codebase version to 1.0.0.
* Reversed decision on the deprecation of the 0.9.x codebase - it will be maintained in this new 1.x branch, although new functionality will mostly occur on newer releases.
* Adding cleanup command to remove unaliased indices.
* Added ELASTICSEARCH_DELETE_OLD_INDEXES setting to auto-remove after a rebuild.
* Thanks to Github user @jimjkelly for the index removal inspiration.
0.9.16 (2015-04-24)
---------------------
* Addressing Django 1.8 warnings.
0.9.15 (2015-01-31)
---------------------
* BUGFIX: Merging pull request from @key that addresses Python 3 support (management command now works).
0.9.14 (2015-01-31)
---------------------
* BUGFIX: Adding in missing `signals.py` file.
0.9.13 (2015-01-30)
---------------------
* Added in new `post_indices_create` and `post_indices_rebuild` signals to allow users to run actions at various points during the index creation and bulk indexing processes.
0.9.12 (2014-12-17)
---------------------
* fixed an issue where per-item request parameters were being added to the bulk data request JSON incorrectly. Tests updated.
0.9.11 (2014-12-08)
---------------------
* added warning if Django's DEBUG=True (causes out of memory errors on constrained
systems due to Django query caching)
* added index setting modification on rebuilding indices to remove replicas, lucene
segment merging and disabling the refresh interval - restoring the original
settings afterwards.
0.9.10 (2014-12-04)
---------------------
* added `page` and `page_size` validation in `add_search()`
0.9.9 (2014-11-24)
---------------------
* Renamed search form related classes - more breaking changes. Added in support
for Django's pagination classes (internal hack).
0.9.8 (2014-11-23)
---------------------
* Revamped search form related classes - includes breaking changes.
0.9.7 (2014-11-16)
---------------------
* Python3 supported mentioned in PyPi categorization; new testcases added. Minor
interface change (added `@classmethod`).
0.9.6 (2014-11-16)
---------------------
* Python 3.3+ support, modified (no new) testcases.
0.9.5 (2014-11-15)
---------------------
* Added in tox support, initial set of test cases and verified travis-ci is working.
0.9.2 (2014-11-12)
---------------------
* Fixed broken management command.
0.9.1 (2014-11-10)
---------------------
* Added missing management command module.
0.9.0 (2014-11-10)
---------------------
* In what will become version 1.0, this 0.9.x codebase is a revamp of the
original codebase (v0.5.x). Completely breaking over previous versions.
0.5.0 (2014-03-05)
---------------------
Final release in 0.x codebase - this old codebase is now unmaintained.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Close
Hashes for django-simple-elasticsearch-1.0.0.tar.gz
Algorithm | Hash digest | |
---|---|---|
SHA256 | 068b571bdd0f24ec3de81a275c3459faa89641a3ff8401ede7e01c8c17ca2e20 |
|
MD5 | 1306765ed8a567f455f8dcd53c9f5f27 |
|
BLAKE2b-256 | 07fbf63287d71ab860d7c8fc5bc999f7acf1d8b268b93c8becdb357b0c4b241b |
Close
Hashes for django_simple_elasticsearch-1.0.0-py2.py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 11ab7ea305bf0851427e7fbd097dc9162bea360cd3350bc5a4c5e6b219e48897 |
|
MD5 | f09a7c22082883224fa2370e4ed90402 |
|
BLAKE2b-256 | c6bb2a9703bf3f9e473c0a2df510af2883ac42b7fb2f58b6ae5094985cee70f5 |