graphene_elastic.filter_backends.faceted_search package¶
Submodules¶
graphene_elastic.filter_backends.faceted_search.common module¶
- class graphene_elastic.filter_backends.faceted_search.common.FacetedSearchFilterBackend(connection_field, args=None)[source]¶
Bases:
BaseBackend
Faceted search filter backend.
- aggregate(queryset, agg_field_name_getter=<function default_agg_field_name_getter>, agg_bucket_name_getter=<function default_agg_bucket_name_getter>)[source]¶
Aggregate.
- Parameters:
queryset –
agg_field_name_getter – callable.
agg_bucket_name_getter –
- Returns:
- alter_connection(connection, slice)[source]¶
Alter connection object.
You can add various properties here, returning the altered object. Typical use-case would be adding facets to the connection.
- Parameters:
connection –
slice –
- Returns:
- construct_facets()[source]¶
Construct facets.
Turns the following structure:
>>> { >>> 'publisher': { >>> 'field': 'publisher.raw', >>> 'facet': TermsFacet, >>> 'enabled': False, >>> } >>> 'date_published': { >>> 'field': 'date_published', >>> 'facet': DateHistogramFacet, >>> 'options': { >>> 'interval': 'month', >>> }, >>> 'enabled': True, >>> }, >>> }
Into the following structure:
>>> { >>> 'publisher': TermsFacet(field='publisher.raw'), >>> 'publishing_frequency': DateHistogramFacet( >>> field='date_published.raw', >>> interval='month' >>> ), >>> }
- property faceted_search_fields¶
Faceted search filter fields.
- field_belongs_to(field_name)[source]¶
Check if given filter field belongs to the backend.
- Parameters:
field_name –
- Returns:
- filter(queryset)[source]¶
Filter the queryset.
- Parameters:
queryset (elasticsearch_dsl.search.Search) – Base queryset.
- Returns:
Updated queryset.
- Return type:
elasticsearch_dsl.search.Search
- get_backend_query_fields(items, is_filterable_func, get_type_func)[source]¶
Construct backend filtering fields.
- Parameters:
items –
is_filterable_func –
get_type_func –
- Returns:
- get_faceted_search_query_params()[source]¶
Get highlight query params.
- Returns:
List of search query params.
- Return type:
list
- has_connection_fields = True¶
- has_query_fields = True¶
- prefix = 'facets'¶
- prepare_faceted_search_fields()[source]¶
Prepare faceted search fields.
Prepares the following structure:
>>> { >>> 'publisher': { >>> 'field': 'publisher.raw', >>> 'facet': TermsFacet, >>> 'enabled': False, >>> } >>> 'date_published': { >>> 'field': 'date_published.raw', >>> 'facet': DateHistogramFacet, >>> 'options': { >>> 'interval': 'month', >>> }, >>> 'enabled': True, >>> }, >>> }
- Returns:
Faceted search fields options.
- Return type:
dict