django_elasticsearch_dsl_drf.filter_backends.search package¶
Subpackages¶
- django_elasticsearch_dsl_drf.filter_backends.search.query_backends package
- Submodules
- django_elasticsearch_dsl_drf.filter_backends.search.query_backends.base module
- django_elasticsearch_dsl_drf.filter_backends.search.query_backends.match module
- django_elasticsearch_dsl_drf.filter_backends.search.query_backends.match_phrase module
- django_elasticsearch_dsl_drf.filter_backends.search.query_backends.match_phrase_prefix module
- django_elasticsearch_dsl_drf.filter_backends.search.query_backends.multi_match module
- django_elasticsearch_dsl_drf.filter_backends.search.query_backends.nested module
- django_elasticsearch_dsl_drf.filter_backends.search.query_backends.simple_query_string module
- Module contents
Submodules¶
django_elasticsearch_dsl_drf.filter_backends.search.base module¶
Base search backend.
- class django_elasticsearch_dsl_drf.filter_backends.search.base.BaseSearchFilterBackend[source]¶
Bases:
rest_framework.filters.BaseFilterBackend
,django_elasticsearch_dsl_drf.filter_backends.mixins.FilterBackendMixin
Base search filter backend.
- filter_queryset(request, queryset, view)[source]¶
Filter the queryset.
- Parameters
request (rest_framework.request.Request) – Django REST framework request.
queryset (elasticsearch_dsl.search.Search) – Base queryset.
view (rest_framework.viewsets.ReadOnlyModelViewSet) – View.
- Returns
Updated queryset.
- Return type
elasticsearch_dsl.search.Search
- get_search_query_params(request)[source]¶
Get search query params.
- Parameters
request (rest_framework.request.Request) – Django REST framework request.
- Returns
List of search query params.
- Return type
list
- matching = 'should'¶
- query_backends = []¶
- search_param = 'search'¶
django_elasticsearch_dsl_drf.filter_backends.search.compound module¶
Compound search backend.
- class django_elasticsearch_dsl_drf.filter_backends.search.compound.CompoundSearchFilterBackend[source]¶
Bases:
django_elasticsearch_dsl_drf.filter_backends.search.base.BaseSearchFilterBackend
Compound search backend.
- query_backends = [<class 'django_elasticsearch_dsl_drf.filter_backends.search.query_backends.match.MatchQueryBackend'>, <class 'django_elasticsearch_dsl_drf.filter_backends.search.query_backends.nested.NestedQueryBackend'>]¶
django_elasticsearch_dsl_drf.filter_backends.search.historical module¶
Search backend. Most likely to be deprecated soon.
- class django_elasticsearch_dsl_drf.filter_backends.search.historical.SearchFilterBackend[source]¶
Bases:
rest_framework.filters.BaseFilterBackend
,django_elasticsearch_dsl_drf.filter_backends.mixins.FilterBackendMixin
Search filter backend for Elasticsearch.
Example:
>>> from django_elasticsearch_dsl_drf.filter_backends import ( >>> SearchFilterBackend >>> ) >>> from django_elasticsearch_dsl_drf.viewsets import ( >>> BaseDocumentViewSet, >>> ) >>> >>> # Local article document definition >>> from .documents import ArticleDocument >>> >>> # Local article document serializer >>> from .serializers import ArticleDocumentSerializer >>> >>> class ArticleDocumentView(BaseDocumentViewSet): >>> >>> document = ArticleDocument >>> serializer_class = ArticleDocumentSerializer >>> filter_backends = [SearchFilterBackend,] >>> search_fields = ( >>> 'title', >>> 'content', >>> ) >>> search_nested_fields = { >>> 'state': ['name'], >>> 'documents.author': ['title', 'description'], >>> }
- construct_nested_search(request, view)[source]¶
Construct nested search.
We have to deal with two types of structures:
Type 1:
>>> search_nested_fields = { >>> 'country': { >>> 'path': 'country', >>> 'fields': ['name'], >>> }, >>> 'city': { >>> 'path': 'country.city', >>> 'fields': ['name'], >>> }, >>> }
Type 2:
>>> search_nested_fields = { >>> 'country': { >>> 'path': 'country', >>> 'fields': [{'name': {'boost': 2}}] >>> }, >>> 'city': { >>> 'path': 'country.city', >>> 'fields': [{'name': {'boost': 2}}] >>> }, >>> }
- Parameters
request (rest_framework.request.Request) – Django REST framework request.
queryset (elasticsearch_dsl.search.Search) – Base queryset.
view (rest_framework.viewsets.ReadOnlyModelViewSet) – View.
- Returns
Updated queryset.
- Return type
elasticsearch_dsl.search.Search
- construct_search(request, view)[source]¶
Construct search.
We have to deal with two types of structures:
Type 1:
>>> search_fields = ( >>> 'title', >>> 'description', >>> 'summary', >>> )
Type 2:
>>> search_fields = { >>> 'title': {'boost': 2}, >>> 'description': None, >>> 'summary': None, >>> }
- Parameters
request (rest_framework.request.Request) – Django REST framework request.
queryset (elasticsearch_dsl.search.Search) – Base queryset.
view (rest_framework.viewsets.ReadOnlyModelViewSet) – View.
- Returns
Updated queryset.
- Return type
elasticsearch_dsl.search.Search
- filter_queryset(request, queryset, view)[source]¶
Filter the queryset.
- Parameters
request (rest_framework.request.Request) – Django REST framework request.
queryset (elasticsearch_dsl.search.Search) – Base queryset.
view (rest_framework.viewsets.ReadOnlyModelViewSet) – View.
- Returns
Updated queryset.
- Return type
elasticsearch_dsl.search.Search
- get_search_query_params(request)[source]¶
Get search query params.
- Parameters
request (rest_framework.request.Request) – Django REST framework request.
- Returns
List of search query params.
- Return type
list
- search_param = 'search'¶
django_elasticsearch_dsl_drf.filter_backends.search.multi_match module¶
Multi match search filter backend.
- class django_elasticsearch_dsl_drf.filter_backends.search.multi_match.MultiMatchSearchFilterBackend[source]¶
Bases:
django_elasticsearch_dsl_drf.filter_backends.search.base.BaseSearchFilterBackend
Multi match search filter backend.
- matching = 'must'¶
- query_backends = [<class 'django_elasticsearch_dsl_drf.filter_backends.search.query_backends.multi_match.MultiMatchQueryBackend'>]¶
- search_param = 'search_multi_match'¶
django_elasticsearch_dsl_drf.filter_backends.search.query_string module¶
django_elasticsearch_dsl_drf.filter_backends.search.simple_query_string module¶
Simple query string search filter backend.
- class django_elasticsearch_dsl_drf.filter_backends.search.simple_query_string.SimpleQueryStringSearchFilterBackend[source]¶
Bases:
django_elasticsearch_dsl_drf.filter_backends.search.base.BaseSearchFilterBackend
Simple query string search filter backend.
- matching = 'must'¶
- query_backends = [<class 'django_elasticsearch_dsl_drf.filter_backends.search.query_backends.simple_query_string.SimpleQueryStringQueryBackend'>]¶
- search_param = 'search_simple_query_string'¶
Module contents¶
Search filter backends.
- class django_elasticsearch_dsl_drf.filter_backends.search.BaseSearchFilterBackend[source]¶
Bases:
rest_framework.filters.BaseFilterBackend
,django_elasticsearch_dsl_drf.filter_backends.mixins.FilterBackendMixin
Base search filter backend.
- filter_queryset(request, queryset, view)[source]¶
Filter the queryset.
- Parameters
request (rest_framework.request.Request) – Django REST framework request.
queryset (elasticsearch_dsl.search.Search) – Base queryset.
view (rest_framework.viewsets.ReadOnlyModelViewSet) – View.
- Returns
Updated queryset.
- Return type
elasticsearch_dsl.search.Search
- get_search_query_params(request)[source]¶
Get search query params.
- Parameters
request (rest_framework.request.Request) – Django REST framework request.
- Returns
List of search query params.
- Return type
list
- matching = 'should'¶
- query_backends = []¶
- search_param = 'search'¶
- class django_elasticsearch_dsl_drf.filter_backends.search.CompoundSearchFilterBackend[source]¶
Bases:
django_elasticsearch_dsl_drf.filter_backends.search.base.BaseSearchFilterBackend
Compound search backend.
- query_backends = [<class 'django_elasticsearch_dsl_drf.filter_backends.search.query_backends.match.MatchQueryBackend'>, <class 'django_elasticsearch_dsl_drf.filter_backends.search.query_backends.nested.NestedQueryBackend'>]¶
- class django_elasticsearch_dsl_drf.filter_backends.search.MultiMatchSearchFilterBackend[source]¶
Bases:
django_elasticsearch_dsl_drf.filter_backends.search.base.BaseSearchFilterBackend
Multi match search filter backend.
- matching = 'must'¶
- query_backends = [<class 'django_elasticsearch_dsl_drf.filter_backends.search.query_backends.multi_match.MultiMatchQueryBackend'>]¶
- search_param = 'search_multi_match'¶
- class django_elasticsearch_dsl_drf.filter_backends.search.SearchFilterBackend[source]¶
Bases:
rest_framework.filters.BaseFilterBackend
,django_elasticsearch_dsl_drf.filter_backends.mixins.FilterBackendMixin
Search filter backend for Elasticsearch.
Example:
>>> from django_elasticsearch_dsl_drf.filter_backends import ( >>> SearchFilterBackend >>> ) >>> from django_elasticsearch_dsl_drf.viewsets import ( >>> BaseDocumentViewSet, >>> ) >>> >>> # Local article document definition >>> from .documents import ArticleDocument >>> >>> # Local article document serializer >>> from .serializers import ArticleDocumentSerializer >>> >>> class ArticleDocumentView(BaseDocumentViewSet): >>> >>> document = ArticleDocument >>> serializer_class = ArticleDocumentSerializer >>> filter_backends = [SearchFilterBackend,] >>> search_fields = ( >>> 'title', >>> 'content', >>> ) >>> search_nested_fields = { >>> 'state': ['name'], >>> 'documents.author': ['title', 'description'], >>> }
- construct_nested_search(request, view)[source]¶
Construct nested search.
We have to deal with two types of structures:
Type 1:
>>> search_nested_fields = { >>> 'country': { >>> 'path': 'country', >>> 'fields': ['name'], >>> }, >>> 'city': { >>> 'path': 'country.city', >>> 'fields': ['name'], >>> }, >>> }
Type 2:
>>> search_nested_fields = { >>> 'country': { >>> 'path': 'country', >>> 'fields': [{'name': {'boost': 2}}] >>> }, >>> 'city': { >>> 'path': 'country.city', >>> 'fields': [{'name': {'boost': 2}}] >>> }, >>> }
- Parameters
request (rest_framework.request.Request) – Django REST framework request.
queryset (elasticsearch_dsl.search.Search) – Base queryset.
view (rest_framework.viewsets.ReadOnlyModelViewSet) – View.
- Returns
Updated queryset.
- Return type
elasticsearch_dsl.search.Search
- construct_search(request, view)[source]¶
Construct search.
We have to deal with two types of structures:
Type 1:
>>> search_fields = ( >>> 'title', >>> 'description', >>> 'summary', >>> )
Type 2:
>>> search_fields = { >>> 'title': {'boost': 2}, >>> 'description': None, >>> 'summary': None, >>> }
- Parameters
request (rest_framework.request.Request) – Django REST framework request.
queryset (elasticsearch_dsl.search.Search) – Base queryset.
view (rest_framework.viewsets.ReadOnlyModelViewSet) – View.
- Returns
Updated queryset.
- Return type
elasticsearch_dsl.search.Search
- filter_queryset(request, queryset, view)[source]¶
Filter the queryset.
- Parameters
request (rest_framework.request.Request) – Django REST framework request.
queryset (elasticsearch_dsl.search.Search) – Base queryset.
view (rest_framework.viewsets.ReadOnlyModelViewSet) – View.
- Returns
Updated queryset.
- Return type
elasticsearch_dsl.search.Search
- get_search_query_params(request)[source]¶
Get search query params.
- Parameters
request (rest_framework.request.Request) – Django REST framework request.
- Returns
List of search query params.
- Return type
list
- search_param = 'search'¶
- class django_elasticsearch_dsl_drf.filter_backends.search.SimpleQueryStringSearchFilterBackend[source]¶
Bases:
django_elasticsearch_dsl_drf.filter_backends.search.base.BaseSearchFilterBackend
Simple query string search filter backend.
- matching = 'must'¶
- query_backends = [<class 'django_elasticsearch_dsl_drf.filter_backends.search.query_backends.simple_query_string.SimpleQueryStringQueryBackend'>]¶
- search_param = 'search_simple_query_string'¶