django-elasticsearch-dsl


Namedjango-elasticsearch-dsl JSON
Version 9.0 PyPI version JSON
download
home_pagehttps://github.com/sabricot/django-elasticsearch-dsl
SummaryWrapper around elasticsearch-dsl-py for django models
upload_time2025-07-23 22:49:39
maintainerNone
docs_urlNone
authorSabricot
requires_python>=3.9
licenseApache Software License 2.0
keywords django elasticsearch elasticsearch-dsl
VCS
bugtrack_url
requirements django elasticsearch
Travis-CI No Travis.
coveralls test coverage No coveralls.
            ========================
Django Elasticsearch DSL
========================

.. 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-py_
so you can use all the features developed by the elasticsearch-py team.

You can view the full documentation at https://django-elasticsearch-dsl.readthedocs.io

.. _elasticsearch-py: https://github.com/elastic/elasticsearch-py

Features
--------

- Based on elasticsearch-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 >= 4.2
   - Python 3.9, 3.10, 3.11, 3.12, 3.13

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

- For Elasticsearch 9.0 and later, use the major version 9 (9.x.y) of the library.

- 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 9.x
    elasticsearch>=9.0.0,<10.0.0

    # 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




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.

            

Raw data

            {
    "_id": null,
    "home_page": "https://github.com/sabricot/django-elasticsearch-dsl",
    "name": "django-elasticsearch-dsl",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.9",
    "maintainer_email": null,
    "keywords": "django elasticsearch elasticsearch-dsl",
    "author": "Sabricot",
    "author_email": null,
    "download_url": "https://files.pythonhosted.org/packages/98/92/3ea6a083afaccf758d41ff470bc4ff3bfbbfa411ce243816400d48ae42de/django_elasticsearch_dsl-9.0.tar.gz",
    "platform": null,
    "description": "========================\nDjango Elasticsearch DSL\n========================\n\n.. image:: https://github.com/django-es/django-elasticsearch-dsl/actions/workflows/ci.yml/badge.svg\n    :target: https://github.com/django-es/django-elasticsearch-dsl/actions/workflows/ci.yml\n.. image:: https://codecov.io/gh/django-es/django-elasticsearch-dsl/coverage.svg?branch=master\n    :target: https://codecov.io/gh/django-es/django-elasticsearch-dsl\n.. image:: https://badge.fury.io/py/django-elasticsearch-dsl.svg\n    :target: https://pypi.python.org/pypi/django-elasticsearch-dsl\n.. image:: https://readthedocs.org/projects/django-elasticsearch-dsl/badge/?version=latest&style=flat\n    :target: https://django-elasticsearch-dsl.readthedocs.io/en/latest/\n\nDjango Elasticsearch DSL is a package that allows indexing of django models in elasticsearch.\nIt is built as a thin wrapper around elasticsearch-py_\nso you can use all the features developed by the elasticsearch-py team.\n\nYou can view the full documentation at https://django-elasticsearch-dsl.readthedocs.io\n\n.. _elasticsearch-py: https://github.com/elastic/elasticsearch-py\n\nFeatures\n--------\n\n- Based on elasticsearch-py_ so you can make queries with the Search_ class.\n- Django signal receivers on save and delete for keeping Elasticsearch in sync.\n- Management commands for creating, deleting, rebuilding and populating indices.\n- Elasticsearch auto mapping from django models fields.\n- Complex field type support (ObjectField, NestedField).\n- Index fast using `parallel` indexing.\n- Requirements\n\n   - Django >= 4.2\n   - Python 3.9, 3.10, 3.11, 3.12, 3.13\n\n**Elasticsearch Compatibility:**\nThe library is compatible with all Elasticsearch versions since 5.x\n**but you have to use a matching major version:**\n\n- For Elasticsearch 9.0 and later, use the major version 9 (9.x.y) of the library.\n\n- For Elasticsearch 8.0 and later, use the major version 8 (8.x.y) of the library.\n\n- For Elasticsearch 7.0 and later, use the major version 7 (7.x.y) of the library.\n\n- For Elasticsearch 6.0 and later, use the major version 6 (6.x.y) of the library.\n\n.. code-block:: python\n\n    # Elasticsearch 9.x\n    elasticsearch>=9.0.0,<10.0.0\n\n    # Elasticsearch 8.x\n    elasticsearch-dsl>=8.0.0,<9.0.0\n\n    # Elasticsearch 7.x\n    elasticsearch-dsl>=7.0.0,<8.0.0\n\n    # Elasticsearch 6.x\n    elasticsearch-dsl>=6.0.0,<7.0.0\n\n.. _Search: http://elasticsearch-dsl.readthedocs.io/en/stable/search_dsl.html\n\n\n\n\nHistory\n-------\n7.1.4 (2020-07-05)\n~~~~~~~~~~~~~~~~~~\n* Configure Elasticsearch _id dynamically from document (#272)\n* Use chain.from_iterable in for performance improvement (#278)\n* Handle case where SimpleLazyObject being treated as an Iterable (#255)\n* Camelcase default value in management command (#254)\n* Various updates and fixup in docs (#250, #276)\n* Start testing against Python 3.8 (#266)\n\n\n7.1.1 (2019-12-26)\n~~~~~~~~~~~~~~~~~~\n* Adding detailed documentation and published to Read The Docs #222\n* Resolve name resolution while delete, create index (#228)\n* Added support for Django 3.0. (#230)\n* Removing old Elasticsearc compatibility (#219)\n* Drop StringField in favor of TextField.\n\n\n7.1.0 (2019-10-29)\n~~~~~~~~~~~~~~~~~~\n* Support for Django `DecimalField` #141\n* Indexing speedup by using `parallel` indexing. #213.\n  Now you can pass `--parallel` or set `ELASTICSEARCH_DSL_PARALLEL`\n  in your settings to get indexing speed boost while indexing\n  through management command.\n* Fixing name resolution in management command #206\n* Small documentation fixes. #196\n\n\n7.0.0 (2019-08-11)\n~~~~~~~~~~~~~~~~~~\n* Support Elasticsearch 7.0 (See PR #176)\n* Added order by to paginate queryset properly (See PR #153)\n* Remove `standard` token filter from `README.md` and test files\n* Various documentation fixes\n\n\n6.4.2 (2019-07-26)\n~~~~~~~~~~~~~~~~~~\n* Fix document importing path\n* Update readme\n\n\n\n6.4.1 (2019-06-14)\n~~~~~~~~~~~~~~~~~~\n* The `DocType` import has changed to `Document`\n\n\n\n6.4.0 (2019-06-01)\n~~~~~~~~~~~~~~~~~~\n* Support elasticsearch-dsl>6.3.0\n* Class `Meta` has changed to class `Django` (See PR #136)\n* Add `register_document` decorator to register a document (See PR #136)\n* Additional Bug fixing and others\n\n\n0.5.1 (2018-11-07)\n~~~~~~~~~~~~~~~~~~\n* Limit elastsearch-dsl to supported versions\n\n0.5.0 (2018-04-22)\n~~~~~~~~~~~~~~~~~~\n* Add Support for Elasticsearch 6 thanks to HansAdema\n\nBreaking Change:\n~~~~~~~~~~~~~~~~\nDjango string fields now point to ES text field by default.\nNothing should change for ES 2.X but if you are using ES 5.X,\nyou may need to rebuild and/or update some of your documents.\n\n\n0.4.5 (2018-04-22)\n~~~~~~~~~~~~~~~~~~\n* Fix prepare with related models when deleted (See PR #99)\n* Fix unwanted calls to get_instances_from_related\n* Fix for empty ArrayField (CBinyenya)\n* Fix nested OneToOneField when related object doesn't exist (CBinyenya)\n* Update elasticsearch-dsl minimal version\n\n0.4.4 (2017-12-13)\n~~~~~~~~~~~~~~~~~~\n* Fix to_queryset with es 5.0/5.1\n\n0.4.3 (2017-12-12)\n~~~~~~~~~~~~~~~~~~\n* Fix syncing of related objects when deleted\n* Add django 2.0 support\n\n0.4.2 (2017-11-27)\n~~~~~~~~~~~~~~~~~~\n* Convert lazy string to string before serialization\n* Readme update (arielpontes)\n\n0.4.1 (2017-10-17)\n~~~~~~~~~~~~~~~~~~\n* Update example app with get_instances_from_related\n* Typo/grammar fixes\n\n0.4.0 (2017-10-07)\n~~~~~~~~~~~~~~~~~~\n* Add a method on the Search class to return a django queryset from an es result\n* Add a queryset_pagination option to DocType.Meta for allow the pagination of\n  big django querysets during the index populating\n* Remove the call to iterator method for the django queryset\n* Fix DocType inheritance. The DocType is store in the registry as a class and not anymore as an instance\n\n\n0.3.0 (2017-10-01)\n~~~~~~~~~~~~~~~~~~\n* Add support for resynching ES documents if related models are updated (HansAdema)\n* Better management for django FileField and ImageField\n* Fix some errors in the doc (barseghyanartur, diwu1989)\n\n0.2.0 (2017-07-02)\n~~~~~~~~~~~~~~~~~~\n* Replace simple model signals with easier to customise signal processors (barseghyanartur)\n* Add options to disable automatic index refreshes (HansAdema)\n* Support defining DocType indexes through Meta class (HansAdema)\n* Add option to set default Index settings through Django config (HansAdema)\n\n0.1.0 (2017-05-26)\n~~~~~~~~~~~~~~~~~~\n* First release on PyPI.\n",
    "bugtrack_url": null,
    "license": "Apache Software License 2.0",
    "summary": "Wrapper around elasticsearch-dsl-py for django models",
    "version": "9.0",
    "project_urls": {
        "Homepage": "https://github.com/sabricot/django-elasticsearch-dsl"
    },
    "split_keywords": [
        "django",
        "elasticsearch",
        "elasticsearch-dsl"
    ],
    "urls": [
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "10ca67bc5ca78cdfbb53bd0d8d6cdafef17231241a85c62cc56ab6dae9a9a815",
                "md5": "d25b70d1458db05948380a5b45220896",
                "sha256": "728c691d9d2cf413e902444e180cfcccc79adbbe9b59eb82860ea73ae7ef3a9f"
            },
            "downloads": -1,
            "filename": "django_elasticsearch_dsl-9.0-py2.py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "d25b70d1458db05948380a5b45220896",
            "packagetype": "bdist_wheel",
            "python_version": "py2.py3",
            "requires_python": ">=3.9",
            "size": 20976,
            "upload_time": "2025-07-23T22:49:34",
            "upload_time_iso_8601": "2025-07-23T22:49:34.704706Z",
            "url": "https://files.pythonhosted.org/packages/10/ca/67bc5ca78cdfbb53bd0d8d6cdafef17231241a85c62cc56ab6dae9a9a815/django_elasticsearch_dsl-9.0-py2.py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "98923ea6a083afaccf758d41ff470bc4ff3bfbbfa411ce243816400d48ae42de",
                "md5": "bd66c2bb494111998352257528adedb8",
                "sha256": "2fb39478fcde20a3ab1b800676e57ef3de15327c0eda16d192aca3823651bdaf"
            },
            "downloads": -1,
            "filename": "django_elasticsearch_dsl-9.0.tar.gz",
            "has_sig": false,
            "md5_digest": "bd66c2bb494111998352257528adedb8",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.9",
            "size": 31579,
            "upload_time": "2025-07-23T22:49:39",
            "upload_time_iso_8601": "2025-07-23T22:49:39.751258Z",
            "url": "https://files.pythonhosted.org/packages/98/92/3ea6a083afaccf758d41ff470bc4ff3bfbbfa411ce243816400d48ae42de/django_elasticsearch_dsl-9.0.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2025-07-23 22:49:39",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "sabricot",
    "github_project": "django-elasticsearch-dsl",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "requirements": [
        {
            "name": "django",
            "specs": [
                [
                    ">=",
                    "4.2"
                ]
            ]
        },
        {
            "name": "elasticsearch",
            "specs": [
                [
                    "<",
                    "10.0.0"
                ],
                [
                    ">=",
                    "9.0.0"
                ]
            ]
        }
    ],
    "tox": true,
    "lcname": "django-elasticsearch-dsl"
}
        
Elapsed time: 1.12888s