def METHOD_NAME(text: str) -> Optional[List[Feature]]:
    """
    Retrieves geo search results for the given search
    criteria. For more details, see:
        https://geosearch.planninglabs.nyc/docs/#search
    If any errors occur, this function will log an
    exception and return None.
    """
    if not settings.GEOCODING_SEARCH_URL:
        # Geocoding is disabled.
        return None
    try:
        response = requests.get(
            settings.GEOCODING_SEARCH_URL, {"text": text}, timeout=settings.GEOCODING_TIMEOUT
        )
        if response.status_code != 200:
            raise Exception(f"Expected 200 response, got {response.status_code}")
        # Restructure the V2 Geosearch API response to the V1 format
        # https://github.com/JustFixNYC/who-owns-what/issues/666
        json_features = _geosearch_v2_to_v1(response.json()["features"])
        features = [Feature(**kwargs) for kwargs in json_features]
    except pydantic.ValidationError:
        logger.exception(
            f"Validation error processing response from {settings.GEOCODING_SEARCH_URL} "
            f"for input {repr(text)}"
        )
        return None
    except Exception:
        logger.exception(f"Error while retrieving data from {settings.GEOCODING_SEARCH_URL}")
        return None
    return _promote_exact_address(text, _promote_same_borough(text, features))