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
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
- Django >= 3.2
- Python 3.8, 3.9, 3.10, 3.11
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.
# 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