You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 3 Next »

FilterStage

The Filter stage generates engine-specific filters and stores a SearchFilters object in the intermediate. It allows for various sources to provide the filters configuration:

  • Config: Filters can be defined in the filters configuration parameter as a list of DynamicFilters or a JSON representation.
  • Filters from Request Body or Intermediate: Filters can be defined in the filters key of the request body or the intermediate as a list of DynamicFilters or a JSON representation.
  • Filter by IDs from Request Body or Intermediate: Filters can be defined in the filter_ids key of the request body or the intermediate as a list of IDs, which will generate a filter by IDs.
  • Filters in Keys from Intermediate: Filters can be retrieved from any key defined in filter_keys. For each key in the list, the stage will look for a list of DynamicFilters or a JSON representation.
  • Filter by User ID: If the add_user_filter configuration parameter is set to true, the stage will retrieve the user information from the request, search for the value in the field defined in user_value, and create a filter for the field defined in user_filter_field.
PropertyDescriptionDefaultTypeRequired
filtersFilters to be applied within this stage-array of DynamicFilterYes (minItems: 1)
typeStage class name-stringYes
enableEnable stage for executiontruebooleanNo
nameName for this specific stage"filters"stringNo
save_to_intermediateIf true, the result of the stage will be stored in the intermediate instead of the final sectionfalsebooleanNo
expand_resultIndicates if the result of this stage should be expanded into the final data dictionary instead of being appended as usualfalsebooleanNo
ui_onlySection specific for UI configuration that affects the process of the stageobjectNo
halt_on_exceptionIndicates if the pipeline should be interrupted in case of an exceptionfalsebooleanNo
engine_nameName of the engine to use for this query. If none is provided, the default engine will be usedstringNo
add_user_filterIf enabled, the stage will add a filter using the credentials in the request, using the user_value and user_filter_field propertiesfalsebooleanNo
user_valueField in the request's credentials to be used as the filter value-stringNo
user_filter_fieldField for the filter in which the user_value must appearstringNo
filter_keysList of keys where filters are stored for compilation into a single filter entry[]array of stringsNo
filter_by_id_fieldField in which the filter by ID will work on"_id"stringNo

Example Configuration

_filter_stage = FilterStage(
    enable=True,
    name='filters',
    engine_name=DEFAULT_ENGINE_NAME,
    save_to_intermediate=False,
    expand_result=False,
    filters=[
        TermFilter(field='adult', negated=False, must=True, value=False, multi_select=False)
    ],
    add_user_filter=True,
    user_value='id',
    user_filter_field='owner',
    filter_keys='some_filters'
)
  • No labels