Package org.apache.solr.common.util
Class URLUtil
- java.lang.Object
-
- org.apache.solr.common.util.URLUtil
-
public class URLUtil extends Object
-
-
Field Summary
Fields Modifier and Type Field Description static PatternURL_PREFIX
-
Constructor Summary
Constructors Constructor Description URLUtil()
-
Method Summary
All Methods Static Methods Concrete Methods Modifier and Type Method Description static StringbuildCoreUrl(String baseUrl, String coreName)Create a core URL (e.g.static StringextractBaseUrl(String coreUrl)static StringextractCoreFromCoreUrl(String coreUrl)static StringgetBaseUrlForNodeName(String nodeName, String urlScheme)Construct a V1 base url for the Solr node, given its name (e.g., 'app-node-1:8983_solr') and a URL scheme.static StringgetBaseUrlForNodeName(String nodeName, String urlScheme, boolean isV2)Construct a V1 or a V2 base url for the Solr node, given its name (e.g., 'app-node-1:8983_solr') and a URL scheme.static StringgetNodeNameForBaseUrl(String solrUrl)Construct base Solr URL to a Solr node namestatic StringgetScheme(String url)static booleanhasScheme(String url)static StringremoveScheme(String url)
-
-
-
Field Detail
-
URL_PREFIX
public static final Pattern URL_PREFIX
-
-
Method Detail
-
hasScheme
public static boolean hasScheme(String url)
-
extractBaseUrl
public static String extractBaseUrl(String coreUrl)
- Parameters:
coreUrl- a URL pointing to a specific "core" or collection (i.e. that adheres loosely to the form "scheme://host:port/solr/coreName")- Returns:
- a URL pointing to the Solr node's root path
-
buildCoreUrl
public static String buildCoreUrl(String baseUrl, String coreName)
Create a core URL (e.g. "http://localhost:8983/solr/myCore") from its individual components- Parameters:
baseUrl- a Solr "base URL" (e.g. "http://localhost:8983/solr/")coreName- the name of a Solr core or collection (with no leading or trailing slashes)
-
getBaseUrlForNodeName
public static String getBaseUrlForNodeName(String nodeName, String urlScheme)
Construct a V1 base url for the Solr node, given its name (e.g., 'app-node-1:8983_solr') and a URL scheme.- Parameters:
nodeName- name of the Solr nodeurlScheme- scheme for the base url ('http' or 'https')- Returns:
- url that looks like
https://app-node-1:8983/solr - Throws:
IllegalArgumentException- if the provided node name is malformed
-
getBaseUrlForNodeName
public static String getBaseUrlForNodeName(String nodeName, String urlScheme, boolean isV2)
Construct a V1 or a V2 base url for the Solr node, given its name (e.g., 'app-node-1:8983_solr') and a URL scheme.- Parameters:
nodeName- name of the Solr nodeurlScheme- scheme for the base url ('http' or 'https')isV2- whether a V2 url should be constructed- Returns:
- url that looks like
https://app-node-1:8983/api(V2) orhttps://app-node-1:8983/solr(V1) - Throws:
IllegalArgumentException- if the provided node name is malformed
-
getNodeNameForBaseUrl
public static String getNodeNameForBaseUrl(String solrUrl) throws MalformedURLException, URISyntaxException
Construct base Solr URL to a Solr node name- Parameters:
solrUrl- Given a base Solr URL string (e.g., 'https://app-node-1:8983/solr')- Returns:
- Node name that looks like
app-node-1:8983_solr - Throws:
MalformedURLException- if the provided URL string is malformedURISyntaxException- if the provided URL string could not be parsed as a URI reference.
-
-