Skip to content

Commit 4cb2a24

Browse files
Fix importing collapse from dict
1 parent d66bd2f commit 4cb2a24

File tree

2 files changed

+5
-1
lines changed

2 files changed

+5
-1
lines changed

elasticsearch_dsl/search.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -294,7 +294,6 @@ def _clone(self):
294294
s = self.__class__(
295295
using=self._using, index=self._index, doc_type=self._doc_type
296296
)
297-
s._collapse = self._collapse.copy()
298297
s._doc_type_map = self._doc_type_map.copy()
299298
s._extra = self._extra.copy()
300299
s._params = self._params.copy()
@@ -408,6 +407,7 @@ def _clone(self):
408407
s = super()._clone()
409408

410409
s._response_class = self._response_class
410+
s._collapse = self._collapse.copy()
411411
s._sort = self._sort[:]
412412
s._source = copy.copy(self._source) if self._source is not None else None
413413
s._highlight = self._highlight.copy()
@@ -446,6 +446,8 @@ def update_from_dict(self, d):
446446
self.aggs._params = {
447447
"aggs": {name: A(value) for (name, value) in aggs.items()}
448448
}
449+
if "collapse" in d:
450+
self._collapse = d.pop("collapse")
449451
if "sort" in d:
450452
self._sort = d.pop("sort")
451453
if "_source" in d:

tests/test_search.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -544,10 +544,12 @@ def test_update_from_dict():
544544
s = search.Search()
545545
s.update_from_dict({"indices_boost": [{"important-documents": 2}]})
546546
s.update_from_dict({"_source": ["id", "name"]})
547+
s.update_from_dict({"collapse": {"field": "user_id"}})
547548

548549
assert {
549550
"indices_boost": [{"important-documents": 2}],
550551
"_source": ["id", "name"],
552+
"collapse": {"field": "user_id"},
551553
} == s.to_dict()
552554

553555

0 commit comments

Comments
 (0)