Wrapper around elasticsearch-dsl-py for django models
.. image:: https://github.com/django-es/django-elasticsearch-dsl/actions/workflows/ci.yml/badge.svg :target: https://github.com/django-es/django-elasticsearch-dsl/actions/workflows/ci.yml .. image:: https://codecov.io/gh/django-es/django-elasticsearch-dsl/coverage.svg?branch=master :target: https://codecov.io/gh/django-es/django-elasticsearch-dsl .. image:: https://badge.fury.io/py/django-elasticsearch-dsl.svg :target: https://pypi.python.org/pypi/django-elasticsearch-dsl .. image:: https://readthedocs.org/projects/django-elasticsearch-dsl/badge/?version=latest&style=flat :target: https://django-elasticsearch-dsl.readthedocs.io/en/latest/
Django Elasticsearch DSL is a package that allows indexing of django models in elasticsearch. It is built as a thin wrapper around elasticsearch-dsl-py_ so you can use all the features developed by the elasticsearch-dsl-py team.
You can view the full documentation at https://django-elasticsearch-dsl.readthedocs.io
.. _elasticsearch-dsl-py: https://github.com/elastic/elasticsearch-dsl-py
Based on elasticsearch-dsl-py_ so you can make queries with the Search_ class.
Django signal receivers on save and delete for keeping Elasticsearch in sync.
Management commands for creating, deleting, rebuilding and populating indices.
Elasticsearch auto mapping from django models fields.
Complex field type support (ObjectField, NestedField).
Index fast using parallel
indexing.
Requirements
Elasticsearch Compatibility: The library is compatible with all Elasticsearch versions since 5.x but you have to use a matching major version:
For Elasticsearch 8.0 and later, use the major version 8 (8.x.y) of the library.
For Elasticsearch 7.0 and later, use the major version 7 (7.x.y) of the library.
For Elasticsearch 6.0 and later, use the major version 6 (6.x.y) of the library.
.. code-block:: python
# Elasticsearch 8.x
elasticsearch-dsl>=8.0.0,<9.0.0
# Elasticsearch 7.x
elasticsearch-dsl>=7.0.0,<8.0.0
# Elasticsearch 6.x
elasticsearch-dsl>=6.0.0,<7.0.0
.. _Search: http://elasticsearch-dsl.readthedocs.io/en/stable/search_dsl.html
7.1.4 (2020-07-05)
* Configure Elasticsearch _id dynamically from document (#272)
* Use chain.from_iterable in for performance improvement (#278)
* Handle case where SimpleLazyObject being treated as an Iterable (#255)
* Camelcase default value in management command (#254)
* Various updates and fixup in docs (#250, #276)
* Start testing against Python 3.8 (#266)
7.1.1 (2019-12-26)
7.1.0 (2019-10-29)
* Support for Django `DecimalField` #141
* Indexing speedup by using `parallel` indexing. #213.
Now you can pass `--parallel` or set `ELASTICSEARCH_DSL_PARALLEL`
in your settings to get indexing speed boost while indexing
through management command.
* Fixing name resolution in management command #206
* Small documentation fixes. #196
7.0.0 (2019-08-11)
standard
token filter from README.md
and test files6.4.2 (2019-07-26)
* Fix document importing path
* Update readme
6.4.1 (2019-06-14)
DocType
import has changed to Document
6.4.0 (2019-06-01)
* Support elasticsearch-dsl>6.3.0
* Class `Meta` has changed to class `Django` (See PR #136)
* Add `register_document` decorator to register a document (See PR #136)
* Additional Bug fixing and others
0.5.1 (2018-11-07)
0.5.0 (2018-04-22)
* Add Support for Elasticsearch 6 thanks to HansAdema
Breaking Change:
~~~~~~~~~~~~~~~~
Django string fields now point to ES text field by default.
Nothing should change for ES 2.X but if you are using ES 5.X,
you may need to rebuild and/or update some of your documents.
0.4.5 (2018-04-22)
0.4.4 (2017-12-13)
* Fix to_queryset with es 5.0/5.1
0.4.3 (2017-12-12)
0.4.2 (2017-11-27)
* Convert lazy string to string before serialization
* Readme update (arielpontes)
0.4.1 (2017-10-17)
0.4.0 (2017-10-07)
* Add a method on the Search class to return a django queryset from an es result
* Add a queryset_pagination option to DocType.Meta for allow the pagination of
big django querysets during the index populating
* Remove the call to iterator method for the django queryset
* Fix DocType inheritance. The DocType is store in the registry as a class and not anymore as an instance
0.3.0 (2017-10-01)
0.2.0 (2017-07-02)
* Replace simple model signals with easier to customise signal processors (barseghyanartur)
* Add options to disable automatic index refreshes (HansAdema)
* Support defining DocType indexes through Meta class (HansAdema)
* Add option to set default Index settings through Django config (HansAdema)
0.1.0 (2017-05-26)