diff --git a/elasticsearch_dsl/faceted_search_base.py b/elasticsearch_dsl/faceted_search_base.py index e1429720..669943cc 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 701cb99a..0a218887 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 6e498131..079dd146 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"}