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