From 4eac5ba5277ddef6fa1ccdb2a3b3ab1583c20b63 Mon Sep 17 00:00:00 2001 From: Greg Reinbach Date: Fri, 30 Apr 2021 05:05:18 -0400 Subject: [PATCH] Allow params to be added to FacetedSearches --- elasticsearch_dsl/faceted_search_base.py | 9 +++++++++ tests/_async/test_faceted_search.py | 7 +++++++ tests/_sync/test_faceted_search.py | 7 +++++++ 3 files changed, 23 insertions(+) diff --git a/elasticsearch_dsl/faceted_search_base.py b/elasticsearch_dsl/faceted_search_base.py index e14297202..669943ccb 100644 --- a/elasticsearch_dsl/faceted_search_base.py +++ b/elasticsearch_dsl/faceted_search_base.py @@ -425,6 +425,15 @@ def sort(self, search): search = search.sort(*self._sort) return search + def params(self, **kwargs): + """ + Specify query params to be used when executing the search. All the + keyword arguments will override the current values. See + https://elasticsearch-py.readthedocs.io/en/master/api.html#elasticsearch.Elasticsearch.search + for all available parameters. + """ + self._s = self._s.params(**kwargs) + def build_search(self): """ Construct the ``Search`` object. diff --git a/tests/_async/test_faceted_search.py b/tests/_async/test_faceted_search.py index 701cb99a7..0a2188877 100644 --- a/tests/_async/test_faceted_search.py +++ b/tests/_async/test_faceted_search.py @@ -192,3 +192,10 @@ def test_date_histogram_no_interval_keyerror(): with pytest.raises(KeyError) as e: dhf.get_value_filter(datetime.now()) assert str(e.value) == "'interval'" + + +def test_params_added_to_search(): + bs = BlogSearch("python search") + assert bs._s._params == {} + bs.params(routing="42") + assert bs._s._params == {"routing": "42"} diff --git a/tests/_sync/test_faceted_search.py b/tests/_sync/test_faceted_search.py index 6e4981319..079dd1469 100644 --- a/tests/_sync/test_faceted_search.py +++ b/tests/_sync/test_faceted_search.py @@ -192,3 +192,10 @@ def test_date_histogram_no_interval_keyerror(): with pytest.raises(KeyError) as e: dhf.get_value_filter(datetime.now()) assert str(e.value) == "'interval'" + + +def test_params_added_to_search(): + bs = BlogSearch("python search") + assert bs._s._params == {} + bs.params(routing="42") + assert bs._s._params == {"routing": "42"}