Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

django-simple-elasticsearch

Package Overview
Dependencies
Maintainers
2
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

django-simple-elasticsearch

Simple ElasticSearch indexing integration for Django.

  • 2.2.1
  • PyPI
  • Socket score

Maintainers
2

=========================== 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 :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.


Versions

Branch :code: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 <http://django-simple-elasticsearch.readthedocs.io/>_

Branch :code: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 <http://django-simple-elasticsearch.readthedocs.io/en/1.x/>_

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

Configuring

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'
]

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

2.2.1 (2017-11-15)

  • Fixing an issue with the recently released elasticsearch-py 6.0.0

2.2.0 (2017-07-17)

  • Addressing inability to index models with a non-integer PK field (ie. UUIDField) - added ability to order bulk queryset on an arbitrary model field.

2.1.7 (2017-03-21)

  • Allowing direct access (again) to underlying dict/list in Result and Response classes for serialization and other purposes.

2.1.5 (2017-03-20)

  • Response class is now MutableSequence based, giving it the properties of a list. Its results attribute is deprecated, as you can now iterate over the results with the response instance itself.
  • Result class results_meta is deprecated. Use meta instead.
  • get_from_es_or_None now returns a Result object instead of the raw Elasticsearch result, for consistency.
  • get_from_es_or_None now catches only the Elasticsearch NotFoundError exception; previously it caught the more expansive ElasticsearchException, which could hide unrelated errors/issues.

2.1.4 (2017-03-12)

  • Result class is now MutableMapping based, giving it the properties of a dict. Its data attribute is deprecated.

2.1.3 (2017-03-11)

  • Minor changes to enable support for elasticsearch-py 5.x.

2.1.0 (2017-03-10)

  • Addressing a packaging problem which erroneously included pyc/pycache files.

2.0.0 (2016-12-20)

  • ALERT: this is a backwards incompatible release; the old 1.x (formerly 0.9.x+) code is maintained on a separate branch for now.
  • Added support for Django 1.10.
  • Ported delete/cleanup functionality from 1.x.
  • Removed support for Django versions older than 1.8. The goal going forward will be to only support Django versions that the Django core team lists as supported.
  • Removed elasticsearch-dsl support: responses and results are now represented by simpler internal representations; queries can ONLY be done via a dict form.
  • Removed ElasticsearchForm - it is easy enough to build a form to validate search input and then form a query dict manually.
  • Renamed ElasticsearchIndexMixin to ElasticsearchTypeMixin, seeing as the mixin represented an ES type mapping, not an actual index.
  • Renamed ElasticsearchProcessor to SimpleSearch.
  • Overall, this module has been greatly simplified.

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.

Keywords

FAQs


Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc