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:
Filter Stage will generate the engine specific filters based on the configuration provided, specifically with the list of DynamicFilter in the aggs configuration parameter, and store them in the intermediate under the stage name.
Additionally, this stage can also generate the filters from the selected aggregations, which will look in the key aggs in the intermediate dictionary in the process function, the generated filters will be stored in the intermediate under the name provided in filters_nameProperty | Description | Default | Type | Required |
---|---|---|---|---|
filters | Filters to be applied within this stage | - | array of DynamicFilter | Yes (minItems: 1) |
type | Stage class name | - | string | Yes |
enable | Enable stage for execution | true | boolean | No |
name | Name for this specific stage |
"filters" | string | No | |
save_to_intermediate | If true, the result of the stage will be stored in the intermediate instead of the final section |
false | boolean | No | ||
expand_result | Indicates if the result of this stage should be expanded into the final data dictionary instead of being appended as usual | false | boolean | No |
ui_only | Section specific for UI configuration |
that affects the process of the stage | object | No | ||
halt_on_exception | Indicates if the pipeline should be interrupted in case of an exception | false | boolean | No |
engine_name | Name of the engine to use for this query. If none is provided, the default engine will be used | string | No | |
add_user_filter | If enabled, the stage will add a filter using the credentials in the request, using the user_value and user_filter_field properties | false | boolean | No |
user_value | Field in the request's credentials to be used as the filter value | - | string | No |
user_filter_field | Field for the filter in which the user_value must appear |
string | No | |||
filter_keys | List of keys where filters are stored for compilation into a single filter entry | [] | array of strings | No |
filter_by_id_field | Field in which the filter by ID will work on | "_id" | string | No |
Code Block | ||||
---|---|---|---|---|
| ||||
_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' ) |