def METHOD_NAME(self, search_id):
    json_data = {}
    for chance in range(self.max_tries):
        logger.info(
            f"Result Polling. Try #{chance + 1}. Starting the query..."
            f"<-- {self.__repr__()}"
        )
        try:
            r = self._session.get(
                f"{self.url}/result?id={search_id}"
                f"&limit={self.rows_limit}&offset=-1"
            )
            r.raise_for_status()
        except requests.RequestException as e:
            logger.warning(f"request failed: {e}")
        else:
            if r.status_code == 200:
                json_data = r.json()
                break
        time.sleep(self.poll_distance)
    if not json_data:
        raise AnalyzerRunException(
            "reached max tries for IntelX analysis,"
            f" observable {self.observable_name}"
        )
    if self.query_type == "phonebook":
        selectors = json_data["selectors"]
        parsed_selectors = self.__pb_search_results(selectors)
        result = {"id": search_id, **parsed_selectors}
    else:
        result = json_data
    return result