Skip to main content

Integrate Elasticsearch DSL with Django REST framework.

Project description

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 quick start tutorial.

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>

Project details


Release history Release notifications | RSS feed

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-drf-0.17.7.tar.gz (91.2 kB view details)

Uploaded Source

Built Distribution

django_elasticsearch_dsl_drf-0.17.7-py2.py3-none-any.whl (129.5 kB view details)

Uploaded Python 2 Python 3

File details

Details for the file django-elasticsearch-dsl-drf-0.17.7.tar.gz.

File metadata

File hashes

Hashes for django-elasticsearch-dsl-drf-0.17.7.tar.gz
Algorithm Hash digest
SHA256 235af4438cc31854cc65d1e93fcd14c71f50e1a09fa4a0b6fb9b119b0d8bb7b9
MD5 f98dfb36a1e00071425911ffb8a59672
BLAKE2b-256 100bd54be1801119484db84f353df5e5a68307d123eca84d7d0c7da904e5a24e

See more details on using hashes here.

Provenance

File details

Details for the file django_elasticsearch_dsl_drf-0.17.7-py2.py3-none-any.whl.

File metadata

File hashes

Hashes for django_elasticsearch_dsl_drf-0.17.7-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 d0999afce27a3c836645e35df0107e6edbe0aa60ad5af9f8210c23a9a605d095
MD5 41d5ecad152a0126b059f1fae615711d
BLAKE2b-256 5089be55ca28923040138419e5f15906be3cd6aaa6c638013209ba0a6d7cb04a

See more details on using hashes here.

Provenance

Supported by

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