It is possible that your source data contains complete URLs (including the protocol, host, port, and path) that are ingested when the data is loaded. For example, company data could include links to pages on the company web site.
If you store the full value, and then insert the value as the hyperlink URL, you would not be able to encode it. Because Big Data Discovery does not parse the attribute value as part of an absolute URL, encoding it would corrupt the URL, and the link would not work.
For example, http://www.mycompany.com/page1
would become http%3A%2F%2Fwww.mycompany.com%2Fpage1
.
Because of this, storing the full URL in your data is not recommended.
When you configure the URL in a component, you would then manually type the standard part of the URL into the component configuration, and use encoded attributes for the query String parameters. For example:
http://server.mycompany.com/path/to?file={0}
0 is a number from the list of selected parameters.
You can only use this approach if all of the URLs have the same structure. If this is not the case, then you may need to use one of the other approaches.
In this approach, the structural portions of the URL such as the protocol, hostname, port, and context path/delimiters are stored in one or more attributes. The parameter portions of the URL that represent identifiers are stored in separate attributes as in approach 1 above.
When you enter the URL in the component, you would not encode the structural attributes, but would encode the parameters. For example:
{{0}}/path/to/{1}?file={2}
0, 1, and 2 are numbers from the list of selected parameters.
This prevents script injection and addresses any disallowed characters. When you enter the URL, you can then use the attribute value without further encoding. For example:
{{0}}
0 is a number from the list of selected parameters.