code: def update_from_dict(self, d):
          
          d = d.copy()
          if 'query' in d:
              self.query._proxied = Q(d.pop('query'))
          if 'post_filter' in d:
              self.post_filter._proxied = Q(d.pop('post_filter'))
  
          aggs = d.pop('aggs', d.pop('aggregations', {}))
          if aggs:
              self.aggs._params = {
                  'aggs': {
                      name: A(value) for (name, value) in iteritems(aggs)}
              }
          if 'sort' in d:
              self._sort = d.pop('sort')
          if '_source' in d:
              self._source = d.pop('_source')
          if 'highlight' in d:
              high = d.pop('highlight').copy()
              self._highlight = high.pop('fields')
              self._highlight_opts = high
          if 'suggest' in d:
              self._suggest = d.pop('suggest')
              if 'text' in self._suggest:
                  text = self._suggest.pop('text')
                  for s in self._suggest.values():
                      s.setdefault('text', text)
          if 'script_fields' in d:
              self._script_fields = d.pop('script_fields')
          self._extra = d
          return self
docs: Apply options from a serialized body to the current instance. Modifies
          the object in-place. Used mostly by ``from_dict``.