code: def query_search(self, search_query, sort=None, offset=100, page=1):
          
          assert page >= 1, f'Invalid page value {page}. Required page >= 1.'
          search_query['sort'] = sort
          search_query['offset'] = offset
          search_query['page'] = page
          response = self.requests_session.post(
              f'{self.url}/query',
              data=json.dumps(search_query),
              headers=self._headers
          )
          if response.status_code == 200:
              return self._parse_search_response(response.content)
          else:
              raise Exception(f'Unable to search for DDO: {response.content}')
docs: Search using a query.
  
          Currently implemented is the MongoDB query model to search for documents according to:
          https://docs.mongodb.com/manual/tutorial/query-documents/
  
          And an Elastic Search driver, which implements a basic parser to convert the query into
          elastic search format.
  
          Example: query_search({"price":[0,10]})
  
          :param search_query: Python dictionary, query following mongodb syntax
          :param sort: 1/-1 to sort ascending or descending.
          :param offset: Integer with the number of elements displayed per page.
          :param page: Integer with the number of page.
          :return: List of DDO instance