Skip to main content

Wrapper around elasticsearch-dsl-py for django models

Project description

https://github.com/django-es/django-elasticsearch-dsl/actions/workflows/ci.yml/badge.svg https://codecov.io/gh/django-es/django-elasticsearch-dsl/coverage.svg?branch=master https://badge.fury.io/py/django-elasticsearch-dsl.svg https://readthedocs.org/projects/django-elasticsearch-dsl/badge/?version=latest&style=flat

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

Features

  • 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 >= 1.11

    • Python 2.7, 3.5, 3.6, 3.7, 3.8

Elasticsearch Compatibility: The library is compatible with all Elasticsearch versions since 5.x but you have to use a matching major version:

  • 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.

  • For Elasticsearch 5.0 and later, use the major version 0.5 (0.5.x) of the library.

# Elasticsearch 7.x
elasticsearch-dsl>=7.0.0,<8.0.0

# Elasticsearch 6.x
elasticsearch-dsl>=6.0.0,<7.0.0

# Elasticsearch 5.x
elasticsearch-dsl>=0.5.1,<6.0.0

History

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)

  • Adding detailed documentation and published to Read The Docs #222

  • Resolve name resolution while delete, create index (#228)

  • Added support for Django 3.0. (#230)

  • Removing old Elasticsearc compatibility (#219)

  • Drop StringField in favor of TextField.

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)

  • Support Elasticsearch 7.0 (See PR #176)

  • Added order by to paginate queryset properly (See PR #153)

  • Remove standard token filter from README.md and test files

  • Various documentation fixes

6.4.2 (2019-07-26)

  • Fix document importing path

  • Update readme

6.4.1 (2019-06-14)

  • The 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)

  • Limit elastsearch-dsl to supported versions

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)

  • Fix prepare with related models when deleted (See PR #99)

  • Fix unwanted calls to get_instances_from_related

  • Fix for empty ArrayField (CBinyenya)

  • Fix nested OneToOneField when related object doesn’t exist (CBinyenya)

  • Update elasticsearch-dsl minimal version

0.4.4 (2017-12-13)

  • Fix to_queryset with es 5.0/5.1

0.4.3 (2017-12-12)

  • Fix syncing of related objects when deleted

  • Add django 2.0 support

0.4.2 (2017-11-27)

  • Convert lazy string to string before serialization

  • Readme update (arielpontes)

0.4.1 (2017-10-17)

  • Update example app with get_instances_from_related

  • Typo/grammar fixes

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)

  • Add support for resynching ES documents if related models are updated (HansAdema)

  • Better management for django FileField and ImageField

  • Fix some errors in the doc (barseghyanartur, diwu1989)

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)

  • First release on PyPI.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

django-elasticsearch-dsl-7.2.1.tar.gz (18.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

django_elasticsearch_dsl-7.2.1-py2.py3-none-any.whl (18.2 kB view details)

Uploaded Python 2Python 3

File details

Details for the file django-elasticsearch-dsl-7.2.1.tar.gz.

File metadata

  • Download URL: django-elasticsearch-dsl-7.2.1.tar.gz
  • Upload date:
  • Size: 18.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.1 importlib_metadata/3.10.1 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.60.0 CPython/3.9.5

File hashes

Hashes for django-elasticsearch-dsl-7.2.1.tar.gz
Algorithm Hash digest
SHA256 265812e22538899333ebb8622c2b9d053eb4e1e44b24c09730da67c90103a6b3
MD5 8fe365fac1c193864fd5729f85b0770a
BLAKE2b-256 b0c44e41ef603c6af3ad731431330362a497f91970ea4500b9b73cee229b222a

See more details on using hashes here.

File details

Details for the file django_elasticsearch_dsl-7.2.1-py2.py3-none-any.whl.

File metadata

  • Download URL: django_elasticsearch_dsl-7.2.1-py2.py3-none-any.whl
  • Upload date:
  • Size: 18.2 kB
  • Tags: Python 2, Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.1 importlib_metadata/3.10.1 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.60.0 CPython/3.9.5

File hashes

Hashes for django_elasticsearch_dsl-7.2.1-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 6a0f96681c033fa04c0a103fab600561f2dd44e7d3b0075723cd05ffc21b716d
MD5 dab585f7daac409d4680bc781ab50f66
BLAKE2b-256 da2545a51614bd3d8aa4b9f1308289c8834eeccc03c4a05f63544dd6842d3fa4

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page