diff --git a/app/query.py b/app/query.py index cafe1067..9994320c 100644 --- a/app/query.py +++ b/app/query.py @@ -225,7 +225,12 @@ def build_search_query( :param sort_by: sorting key, defaults to None (=relevance-based sorting) :return: the built Query """ - filter_query, remaining_terms = parse_lucene_dsl_query(q, filter_query_builder) + if q is None: + filter_query = [] + remaining_terms = "" + else: + filter_query, remaining_terms = parse_lucene_dsl_query(q, filter_query_builder) + logger.debug("filter query: %s", filter_query) logger.debug("remaining terms: '%s'", remaining_terms) diff --git a/tests/unit/data/empty_query_with_sort_by.json b/tests/unit/data/empty_query_with_sort_by.json new file mode 100644 index 00000000..fd15ab84 --- /dev/null +++ b/tests/unit/data/empty_query_with_sort_by.json @@ -0,0 +1,59 @@ +{ + "aggs": { + "brands_tags": { + "terms": { + "field": "brands_tags" + } + }, + "lang": { + "terms": { + "field": "lang" + } + }, + "owner": { + "terms": { + "field": "owner" + } + }, + "categories_tags": { + "terms": { + "field": "categories_tags" + } + }, + "labels_tags": { + "terms": { + "field": "labels_tags" + } + }, + "countries_tags": { + "terms": { + "field": "countries_tags" + } + }, + "states_tags": { + "terms": { + "field": "states_tags" + } + }, + "nutrition_grades": { + "terms": { + "field": "nutrition_grades" + } + }, + "ecoscore_grade": { + "terms": { + "field": "ecoscore_grade" + } + }, + "nova_groups": { + "terms": { + "field": "nova_groups" + } + } + }, + "sort": [ + "unique_scans_n" + ], + "size": 25, + "from": 25 +} \ No newline at end of file diff --git a/tests/unit/test_query.py b/tests/unit/test_query.py index 8dc4d9ac..4e0f6687 100644 --- a/tests/unit/test_query.py +++ b/tests/unit/test_query.py @@ -140,6 +140,14 @@ def test_parse_lucene_dsl_query( 2, None, ), + ( + "empty_query_with_sort_by", + None, + {"en"}, + 25, + 2, + "unique_scans_n", + ), ], ) def test_build_search_query(