Skip to content
Integrate Elasticsearch DSL with Django REST framework.
Branch: master
Clone or download
Latest commit ffecab2 May 30, 2019
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
.github/ISSUE_TEMPLATE github templates Apr 10, 2019
docker Mount a persistent docker volume in place of your local node_modules … Feb 4, 2019
docs up docs May 29, 2019
docs_src more May 22, 2019
examples up docs May 29, 2019
scripts mre May 16, 2019
src/django_elasticsearch_dsl_drf prepare 0.17.7 May 29, 2019
vagrant docs updated Jun 1, 2018
.coveragerc ignore .tox in coverage May 14, 2019
.dockerignore speed up docker Nov 24, 2018
.gitignore more Dec 19, 2018
.hgignore prepare 0.17 Dec 11, 2018
.isort.cfg prepare 0.1; initial commit Jun 20, 2017
.pylintrc prepare 0.3.2 Jul 12, 2017
.travis.yml travis fix attempt May 16, 2019
CHANGELOG.rst prepare 0.17.7 May 29, 2019
CREDITS.rst prepare 0.7 Mar 8, 2018
LICENSE_GPL2.0.txt minor fix in search filter backend; change copyright year Jan 3, 2018
LICENSE_LGPL_2.1.txt
MANIFEST.in prepare 0.1; initial commit Jun 20, 2017
README.rst
ROADMAP.rst docs updated Jul 4, 2018
TODOS.rst move docs around Aug 13, 2018
docker-compose.yml Mount a persistent docker volume in place of your local node_modules … Feb 4, 2019
pytest.ini prepare 0.1; initial commit Jun 20, 2017
requirements.txt prepare 0.1; initial commit Jun 20, 2017
runtests.py prepare 0.1; initial commit Jun 20, 2017
setup.cfg prepare 0.1; initial commit Jun 20, 2017
setup.py prepare 0.17.7 May 29, 2019
tox.ini more Apr 2, 2019

README.rst

django-elasticsearch-dsl-drf

Integrate Elasticsearch DSL with Django REST framework in the shortest way possible, with least efforts possible.

Package provides views, serializers, filter backends, pagination and other handy add-ons.

You are expected to use django-elasticsearch-dsl for defining your Elasticsearch documents.

PyPI Version Build Status GPL-2.0-only OR LGPL-2.1-or-later

Documentation

Documentation is available on Read the Docs.

Make sure to read FAQ.

Prerequisites

  • Django 1.8, 1.9, 1.10, 1.11, 2.0, 2.1 and 2.2.
  • Python 2.7, 3.5, 3.6, 3.7
  • Elasticsearch 2.x, 5.x, 6.x

Main features and highlights

Demo

A frontend demo (React based) is available. See the dedicated docs for more information.

To bootstrap evaluation, clone the repository locally and run docker-compose.

docker-compose up

It will set up:

Installation

  1. Install latest stable version from PyPI:

    pip install django-elasticsearch-dsl-drf

    or latest stable version from GitHub:

    pip install https://github.com/barseghyanartur/django-elasticsearch-dsl-drf/archive/stable.tar.gz

    or latest stable version from BitBucket:

    pip install https://bitbucket.org/barseghyanartur/django-elasticsearch-dsl-drf/get/stable.tar.gz
  2. Add rest_framework, django_elasticsearch_dsl and django_elasticsearch_dsl_drf to INSTALLED_APPS:

    INSTALLED_APPS = (
        # ...
        # REST framework
        'rest_framework',
    
        # Django Elasticsearch integration
        'django_elasticsearch_dsl',
    
        # Django REST framework Elasticsearch integration (this package)
        'django_elasticsearch_dsl_drf',
        # ...
    )

Quick start

Perhaps the easiest way to get acquainted with django-elasticsearch-dsl-drf is to read the :doc:`quick start tutorial <quick_start>`.

See it as a guide of diving into integration of Elasticsearch with Django with very low knowledge entry level.

Testing

Project is covered with tests.

To test with all supported Python/Django versions type:

tox

To test against specific environment, type:

tox -e py37-django21

To test just your working environment type:

./runtests.py

To run a single test in your working environment type:

./runtests.py src/django_elasticsearch_dsl_drf/tests/test_filtering.py

Or:

./manage.py test django_elasticsearch_dsl_drf.tests.test_ordering

To run a single test class in a given test module in your working environment type:

./runtests.py src/django_elasticsearch_dsl_drf/tests/test_suggesters.py::TestSuggesters

It's assumed that you have all the requirements installed. If not, first install the test requirements:

pip install -r examples/requirements/test.txt

Writing documentation

Keep the following hierarchy.

=====
title
=====

header
======

sub-header
----------

sub-sub-header
~~~~~~~~~~~~~~

sub-sub-sub-header
^^^^^^^^^^^^^^^^^^

sub-sub-sub-sub-header
++++++++++++++++++++++

sub-sub-sub-sub-sub-header
**************************

License

GPL-2.0-only OR LGPL-2.1-or-later

Support

For any issues contact me at the e-mail given in the Author section.

Author

Artur Barseghyan <artur.barseghyan@gmail.com>

You can’t perform that action at this time.