code: def search_content(self, cql_str=None, cql_context=None, expand=None, start=0, limit=None, callback=None):
          
          params = {}
          if cql_str:
              params["cql"] = cql_str
          if cql_context:
              params["cqlcontext"] = json.dumps(cql_context)
          if expand:
              params["expand"] = expand
          if start is not None:
              params["start"] = int(start)
          if limit is not None:
              params["limit"] = int(limit)
          return self._service_get_request("rest/api/content/search", params=params, callback=callback)
docs: Fetch a list of content using the Confluence Query Language (CQL).
          See: Advanced searching using CQL (https://developer.atlassian.com/display/CONFDEV/Advanced+Searching+using+CQL)
          :param cql_str (string): OPTIONAL: A cql query string to use to locate content.
          :param cql_context (string): OPTIONAL: The context to execute a cql search in,
                                       this is the json serialized form of SearchContext
          :param expand (string): OPTIONAL: A comma separated list of properties to expand on the content. Default: Empty.
          :param start (int): OPTIONAL: The start point of the collection to return. Default: 0
          :param limit (int): OPTIONAL: The limit of the number of items to return,
                                        this may be restricted by fixed system limits. Default: 25.
          :param callback: OPTIONAL: The callback to execute on the resulting data, before the method returns.
                           Default: None (no callback, raw data returned).
          :return: The JSON data returned from the content/search endpoint, or the results of the callback.
                   Will raise requests.HTTPError on bad input, potentially.