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 Pattern
URL_PREFIX
-
Constructor Summary
Constructors Constructor Description URLUtil()
-
Method Summary
All Methods Static Methods Concrete Methods Modifier and Type Method Description static String
buildCoreUrl(String baseUrl, String coreName)
Create a core URL (e.g.static String
extractBaseUrl(String coreUrl)
static String
extractCoreFromCoreUrl(String coreUrl)
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.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.static String
getNodeNameForBaseUrl(String solrUrl)
Construct base Solr URL to a Solr node namestatic String
getScheme(String url)
static boolean
hasScheme(String url)
static String
removeScheme(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.
-
-