Sequence based identifiers are used for versioning (schema follows below):
major.minor[.revision]
- It's always safe to upgrade within the same minor version (for example, from 0.3 to 0.3.4).
- Minor version changes might be backwards incompatible. Read the release notes carefully before upgrading (for example, when upgrading from 0.3.4 to 0.4).
- All backwards incompatible changes are mentioned in this document.
2018-07-15
Note
This release contains backwards incompatible changes.
You should update your Django code and front-end parts of your applications
that were relying on the complex queries using |
and :
chars in the
GET params.
Note
If you have used custom filter backends using SEPARATOR_LOOKUP_VALUE
,
SEPARATOR_LOOKUP_COMPLEX_VALUE
or
SEPARATOR_LOOKUP_COMPLEX_MULTIPLE_VALUE
constants or
split_lookup_complex_value
helper method of the FilterBackendMixin
,
you most likely want to run your functional tests to see if everything
still works.
Note
Do not keep things as they were in your own fork, since new search backends
will use the |
and :
symbols differently.
Examples of old API requests vs new API requests
Note
Note, that |
and :
chars were mostly replaced with __
and ,
.
Old API requests
http://127.0.0.1:8080/search/publisher/?search=name|reilly&search=city|london
http://127.0.0.1:8000/search/publishers/?location__geo_distance=100000km|12.04|-63.93
http://localhost:8000/api/articles/?id__terms=1|2|3
http://localhost:8000/api/users/?age__range=16|67|2.0
http://localhost:8000/api/articles/?id__in=1|2|3
http://localhost:8000/api/articles/?location__geo_polygon=40,-70|30,-80|20,-90|_name:myname|validation_method:IGNORE_MALFORMED
New API requests
http://127.0.0.1:8080/search/publisher/?search=name:reilly&search=city:london
http://127.0.0.1:8000/search/publishers/?location__geo_distance=100000km__12.04__-63.93
http://localhost:8000/api/articles/?id__terms=1__2__3
http://localhost:8000/api/users/?age__range=16__67__2.0
http://localhost:8000/api/articles/?id__in=1__2__3
http://localhost:8000/api/articles/?location__geo_polygon=40,-70__30,-80__20,-90___name,myname__validation_method,IGNORE_MALFORMED
SEPARATOR_LOOKUP_VALUE
has been removed. UseSEPARATOR_LOOKUP_COMPLEX_VALUE
andSEPARATOR_LOOKUP_COMPLEX_MULTIPLE_VALUE
instead.SEPARATOR_LOOKUP_NAME
has been added.- The method
split_lookup_complex_value
has been removed. Usesplit_lookup_complex_value
instead. - Default filter lookup option is added. In past, if no specific lookup was
provided and there were multiple values for a single field to filter on, by
default
terms
filter was used. Theterm
lookup was used by default in similar situation for a single value to filter on. It's now possible to declare default lookup which will be used when no lookup is given. - Removed deprecated
views
module. Import fromviewsets
instead. - Removed undocumented
get_count
helper fromhelpers
module.
2018-07-06
- Elasticsearch 6.x support.
- Minor fixes.
2018-07-04
- Introduced
post_filter
support. - Generalised the
FilteringFilterBackend
backend. BothPostFilterFilteringFilterBackend
andNestedFilteringFilterBackend
backends are now primarily based on it. - Reduced Elastic queries from 3 to 2 when using
LimitOffsetPagination
.
2018-06-27
Note
Release supported by Goldmund, Wyldebeast & Wunderliebe.
- Added
NestedFilteringFilterBackend
backend. - Documentation updated with examples of implementing a nested aggregations/facets.
2018-06-25
- It's possible to retrieve original dictionary from
DictionaryProxy
object. - Added helper wrappers and helper functions as a temporary fix for issues
in the
django-elasticsearch-dsl
.
2018-06-05
- Minor fixes.
2018-06-05
- Fixed wrong filter name in functional suggesters results into an error on Django 1.10 (and prior).
- Documentation improvements.
2018-06-01
Note
Release supported by Goldmund, Wyldebeast & Wunderliebe.
Note
This release contain minor backwards incompatible changes. You should update your code.
BaseDocumentViewSet
(which from now on does not containsuggest
functionality) has been renamed toDocumentViewSet
(which does containsuggest
functionality).
- You should no longer import from
django_elasticsearch_dsl_drf.views
. Instead, import fromdjango_elasticsearch_dsl_drf.viewsets
.
- You should no longer import from
- Deprecated
django_elasticsearch_dsl_drf.views
in favour ofdjango_elasticsearch_dsl_drf.viewsets
. - Suggest action/method has been moved to
SuggestMixin
class. FunctionalSuggestMixin
class introduced which resembled functionality of theSuggestMixin
with several improvements/additions, such as advanced filtering and context-aware suggestions.- You can now define a default suggester in
suggester_fields
which will be used if you do not provide suffix for the filter name.
2018-05-09
Note
Release dedicated to the Victory Day, the victims of the Second World War and Liberation of Shushi.
- Django REST framework 3.8.x support.
2018-04-04
Note
Release supported by Goldmund, Wyldebeast & Wunderliebe.
- Add query boost support for search fields.
2018-03-08
Note
Dear ladies, congratulations on International Women's Day
- CoreAPI/CoreSchema support.
2018-03-05
- Minor fix: explicitly use DocType in the ViewSets.
2018-01-03
- Minor fix in the search backend.
- Update the year in the license and code.
2017-12-29
- Update example project (and the tests that are dependant on the example project) to work with Django 2.0.
- Set minimal requirement for
django-elasticsearch-dsl
to 3.0.
2017-11-28
- Documentation fixes.
2017-11-28
- Added highlight backend.
- Added nested search functionality.
2017-10-18
- Fixed serialization of complex nested structures (lists of nested objects).
- Documentation fixes.
2017-10-05
Note
This release contains changes that might be backwards incompatible
for your project. If you have used dynamic document serializer
django_elasticsearch_dsl_drf.serializers.DocumentSerializer
with customisations (with use of serializers.SerializerMethodField
,
having the value parsed to JSON), just remove the custom parts.
- Support for
ObjectField
,NestedField
,GeoPointField
,ListField
,GeoShapeField
(and in general, nesting fields either as a dictionary or list should not be a problem at all). - Dynamic serializer has been made less strict.
- Added
get_paginated_response_context
methods to bothPageNumberPagination
andLimitOffsetPagination
pagination classes to simplify customisations.
2017-10-02
- Documentation improvements (Elasticsearch suggestions).
- More tests (term and phrase suggestions).
- Code style fixes.
2017-09-28
- Documentation fixes.
- Fixes in tests.
- Improved factories.
2017-09-28
- Added
geo_bounding_box
query support to the geo-spatial features.
2017-09-26
- Fixes in docs.
2017-09-26
Note
This release contains changes that might be backwards incompatible
for your project. Make sure to add the DefaultOrderingFilterBackend
everywhere you have used the OrderingFilterBackend
, right after the
latter.
GeoSpatialFilteringFilterBackend
filtering backend, supportinggeo_distance
andgeo_polygon
geo-spatial queries.GeoSpatialOrderingFilterBackend
ordering backend, supporting ordering of results forgeo_distance
filter.OrderingFilterBackend
no longer provides defaults when no ordering is given. In order to take care of the defaults include theDefaultOrderingFilterBackend
in the list offilter_backends
(after all other ordering backends).
2017-09-21
- Added
geo_distance
filter. Note, that although functionally the filter would not change its' behaviour, it is likely to be moved to a separate backend (geo_spatial
). For now use as is. - Minor fixes.
2017-09-21
- Added
query
argument tomore_like_this
helper.
2017-09-20
- Minor fixes.
- Simplified Elasticsearch version check.
2017-09-12
- Python 2.x compatibility fix.
2017-09-12
- Fixes tests on some environments.
2017-09-07
- Docs fixes.
2017-09-07
- Fixed suggestions test for Elasticsearch 5.x.
- Added compat module for painless testing of Elastic 2.x to Elastic 5.x transition.
2017-08-24
- Minor fixes in the ordering backend.
- Improved tests and coverage.
2017-08-23
- Minor fixes in the ordering backend.
2017-07-13
- Minor fixes and improvements.
2017-07-12
- Minor fixes and improvements.
2017-07-12
- Minor Python2 fixes.
- Minor documentation fixes.
2017-07-11
- Add suggestions support (
term
,phrase
andcompletion
).
2017-07-11
- Minor fixes.
- Fixes in documentation.
2017-07-11
- Fixes in documentation.
2017-07-11
- Fixes in documentation.
2017-07-11
- Fixes in documentation.
2017-07-11
- Fixes in documentation.
2017-07-11
- Fixes in documentation.
2017-07-11
- Initial faceted search support.
- Pagination support.
2017-06-26
- Python2 fixes.
- Documentation and example project improvements.
2017-06-25
- Dynamic serializer for Documents.
- Major improvements in documentation.
2017-06-23
- Implemented
gt
,gte
,lt
andlte
functional query lookups. - Implemented
ids
native filter lookup.
2017-06-22
- Implemented
endswith
andcontains
functional filters. - Added tests for
wildcard
,exists
,exclude
andisnull
filters. Improvedrange
filter tests. - Improve
more_like_this
helper test. - Improve ordering tests.
- Two additional arguments added to the
more_like_this
helper:min_doc_freq
andmax_doc_freq
. - Minor documentation improvements.
2017-06-22
- Added tests for
in
,term
andterms
filters. - Minor documentation fixes.
2017-06-21
- Added tests for
more_like_this
helper,range
andprefix
filters. - Minor documentation improvements.
2017-06-20
- Minor fixes in tests.
2017-06-20
- Fixes in
more_like_this
helper. - Tiny documentation improvements.
2017-06-19
- Initial beta release.