Integrate Elasticsearch DSL with Django REST framework.
Project description
============================
django-elasticsearch-dsl-drf
============================
Integrate `Elasticsearch DSL
<https://pypi-hypernode.com/pypi/elasticsearch-dsl>`_ with
`Django REST framework <https://pypi-hypernode.com/pypi/djangorestframework>`_ 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
<https://pypi-hypernode.com/pypi/django-elasticsearch-dsl>`_ for defining your
Elasticsearch documents.
Prerequisites
=============
- Django 1.8, 1.9, 1.10 and 1.11.
- Python 2.7, 3.4, 3.5, 3.6
- Elasticsearch 2.x, 5.x
Dependencies
============
- `django-elasticsearch-dsl <https://pypi-hypernode.com/pypi/django-elasticsearch-dsl>`_
- `djangorestframework <https://pypi-hypernode.com/pypi/djangorestframework>`_
Documentation
=============
Documentation is available on `Read the Docs
<http://django-elasticsearch-dsl-drf.readthedocs.io/>`_.
Main features and highlights
============================
- `Dynamic serializer for Documents <http://django-elasticsearch-dsl-drf.readthedocs.io/en/0.6/basic_usage_examples.html#sample-serializer>`_.
- `Search filter backend <http://django-elasticsearch-dsl-drf.readthedocs.io/en/0.6/advanced_usage_examples.html#search>`_.
- `Ordering filter backend <http://django-elasticsearch-dsl-drf.readthedocs.io/en/0.6/advanced_usage_examples.html#ordering>`_.
- `Filtering filter backend <http://django-elasticsearch-dsl-drf.readthedocs.io/en/0.6/advanced_usage_examples.html#filtering>`_ (big variety of
native- and functional- query lookups, such as ``gt``, ``gte``, ``lt``,
``lte``, ``endswith``, ``contains``, ``wildcard``, ``exists``, ``exclude``,
``isnull``, ``range``, ``in``, ``term`` and ``terms`` is implemented.
- `Geo-spatial filtering filter backend <http://django-elasticsearch-dsl-drf.readthedocs.io/en/0.6/advanced_usage_examples.html#geo-spatial-features>`_ (the
following filters implemented: ``geo_distance``, ``geo_polygon`` and
``geo_bounding_box``).
- `Geo-spatial ordering filter backend <http://django-elasticsearch-dsl-drf.readthedocs.io/en/0.6/advanced_usage_examples.html#geo-spatial-features>`_ (the
following filters implemented: ``geo_distance``).
- `Faceted search filter backend <http://django-elasticsearch-dsl-drf.readthedocs.io/en/0.6/advanced_usage_examples.html#faceted-search>`_.
- :doc:`Highlight backend <advanced_usage_examples>`.
- `Suggester filter backend <http://django-elasticsearch-dsl-drf.readthedocs.io/en/0.6/advanced_usage_examples.html#suggestions>`_.
- `Pagination (Page number and limit/offset pagination) <http://django-elasticsearch-dsl-drf.readthedocs.io/en/0.6/advanced_usage_examples.html#pagination>`_.
- `Ids filter backend <http://django-elasticsearch-dsl-drf.readthedocs.io/en/0.6/advanced_usage_examples.html#ids-filter>`_.
Installation
============
(1) Install latest stable version from PyPI:
.. code-block:: sh
pip install django-elasticsearch-dsl-drf
or latest stable version from GitHub:
.. code-block:: sh
pip install https://github.com/barseghyanartur/django-elasticsearch-dsl-drf/archive/stable.tar.gz
or latest stable version from BitBucket:
.. code-block:: sh
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``:
.. code-block:: python
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 <http://django-elasticsearch-dsl-drf.readthedocs.io/en/0.6/quick_start.html>`_.
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:
.. code-block:: sh
tox
To test against specific environment, type:
.. code-block:: sh
tox -e py36-django110
To test just your working environment type:
.. code-block:: sh
./runtests.py
To run a single test in your working environment type:
.. code-block:: sh
./runtests.py src/django_elasticsearch_dsl_drf/tests/test_filtering.py
Or:
.. code-block:: sh
./manage.py test django_elasticsearch_dsl_drf.tests.test_ordering
It's assumed that you have all the requirements installed. If not, first
install the test requirements:
.. code-block:: sh
pip install -r examples/requirements/test.txt
Writing documentation
=====================
Keep the following hierarchy.
.. code-block:: text
=====
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/LGPL 2.1
Support
=======
For any issues contact me at the e-mail given in the `Author`_ section.
Author
======
Artur Barseghyan <artur.barseghyan@gmail.com>
django-elasticsearch-dsl-drf
============================
Integrate `Elasticsearch DSL
<https://pypi-hypernode.com/pypi/elasticsearch-dsl>`_ with
`Django REST framework <https://pypi-hypernode.com/pypi/djangorestframework>`_ 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
<https://pypi-hypernode.com/pypi/django-elasticsearch-dsl>`_ for defining your
Elasticsearch documents.
Prerequisites
=============
- Django 1.8, 1.9, 1.10 and 1.11.
- Python 2.7, 3.4, 3.5, 3.6
- Elasticsearch 2.x, 5.x
Dependencies
============
- `django-elasticsearch-dsl <https://pypi-hypernode.com/pypi/django-elasticsearch-dsl>`_
- `djangorestframework <https://pypi-hypernode.com/pypi/djangorestframework>`_
Documentation
=============
Documentation is available on `Read the Docs
<http://django-elasticsearch-dsl-drf.readthedocs.io/>`_.
Main features and highlights
============================
- `Dynamic serializer for Documents <http://django-elasticsearch-dsl-drf.readthedocs.io/en/0.6/basic_usage_examples.html#sample-serializer>`_.
- `Search filter backend <http://django-elasticsearch-dsl-drf.readthedocs.io/en/0.6/advanced_usage_examples.html#search>`_.
- `Ordering filter backend <http://django-elasticsearch-dsl-drf.readthedocs.io/en/0.6/advanced_usage_examples.html#ordering>`_.
- `Filtering filter backend <http://django-elasticsearch-dsl-drf.readthedocs.io/en/0.6/advanced_usage_examples.html#filtering>`_ (big variety of
native- and functional- query lookups, such as ``gt``, ``gte``, ``lt``,
``lte``, ``endswith``, ``contains``, ``wildcard``, ``exists``, ``exclude``,
``isnull``, ``range``, ``in``, ``term`` and ``terms`` is implemented.
- `Geo-spatial filtering filter backend <http://django-elasticsearch-dsl-drf.readthedocs.io/en/0.6/advanced_usage_examples.html#geo-spatial-features>`_ (the
following filters implemented: ``geo_distance``, ``geo_polygon`` and
``geo_bounding_box``).
- `Geo-spatial ordering filter backend <http://django-elasticsearch-dsl-drf.readthedocs.io/en/0.6/advanced_usage_examples.html#geo-spatial-features>`_ (the
following filters implemented: ``geo_distance``).
- `Faceted search filter backend <http://django-elasticsearch-dsl-drf.readthedocs.io/en/0.6/advanced_usage_examples.html#faceted-search>`_.
- :doc:`Highlight backend <advanced_usage_examples>`.
- `Suggester filter backend <http://django-elasticsearch-dsl-drf.readthedocs.io/en/0.6/advanced_usage_examples.html#suggestions>`_.
- `Pagination (Page number and limit/offset pagination) <http://django-elasticsearch-dsl-drf.readthedocs.io/en/0.6/advanced_usage_examples.html#pagination>`_.
- `Ids filter backend <http://django-elasticsearch-dsl-drf.readthedocs.io/en/0.6/advanced_usage_examples.html#ids-filter>`_.
Installation
============
(1) Install latest stable version from PyPI:
.. code-block:: sh
pip install django-elasticsearch-dsl-drf
or latest stable version from GitHub:
.. code-block:: sh
pip install https://github.com/barseghyanartur/django-elasticsearch-dsl-drf/archive/stable.tar.gz
or latest stable version from BitBucket:
.. code-block:: sh
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``:
.. code-block:: python
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 <http://django-elasticsearch-dsl-drf.readthedocs.io/en/0.6/quick_start.html>`_.
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:
.. code-block:: sh
tox
To test against specific environment, type:
.. code-block:: sh
tox -e py36-django110
To test just your working environment type:
.. code-block:: sh
./runtests.py
To run a single test in your working environment type:
.. code-block:: sh
./runtests.py src/django_elasticsearch_dsl_drf/tests/test_filtering.py
Or:
.. code-block:: sh
./manage.py test django_elasticsearch_dsl_drf.tests.test_ordering
It's assumed that you have all the requirements installed. If not, first
install the test requirements:
.. code-block:: sh
pip install -r examples/requirements/test.txt
Writing documentation
=====================
Keep the following hierarchy.
.. code-block:: text
=====
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/LGPL 2.1
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
Built Distribution
Close
Hashes for django-elasticsearch-dsl-drf-0.6.tar.gz
Algorithm | Hash digest | |
---|---|---|
SHA256 | 4ba17888425af79ac709ab6207ae1018cbea7ae67cb513b09a227add73c64319 |
|
MD5 | 7a0f71a199e06317f2f9b61da814b70b |
|
BLAKE2b-256 | fcd8a7c150b34e076486b8446f61674a1ffc46b01fc46a47e8749180924c75d6 |
Close
Hashes for django_elasticsearch_dsl_drf-0.6-py2.py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | ba2ea91ec6b726c57373bee6d3f6b2da45103c9eab67abcc14fd47022caa9dda |
|
MD5 | 9b1690c1fbd476debf74dc282a0123dd |
|
BLAKE2b-256 | c428f864aa33280028158838f7ca23b1ad1282e6b6781c0d7fa5bbda88e5b23c |