83 lines
2.4 KiB
Plaintext
83 lines
2.4 KiB
Plaintext
[role="xpack"]
|
|
[testenv="basic"]
|
|
[[uri-parts-processor]]
|
|
=== URI parts processor
|
|
++++
|
|
<titleabbrev>URI parts</titleabbrev>
|
|
++++
|
|
|
|
Parses a Uniform Resource Identifier (URI) string and extracts its components as
|
|
an object. This URI object includes properties for the URI's domain, path, fragment,
|
|
port, query, scheme, user info, username, and password.
|
|
|
|
[[uri-parts-options]]
|
|
.URI Parts Options
|
|
[options="header"]
|
|
|======
|
|
| Name | Required | Default | Description
|
|
| `field` | yes | - | Field containing the URI string.
|
|
| `target_field` | no | `url` | Output field for the URI object.
|
|
| `keep_original` | no | true | If `true`, the processor copies the
|
|
unparsed URI to `<target_field>.original`.
|
|
| `remove_if_successful` | no | false | If `true`, the processor removes
|
|
the `field` after parsing the URI string. If parsing fails, the processor does not
|
|
remove the `field`.
|
|
|
|
include::common-options.asciidoc[]
|
|
|======
|
|
|
|
Here is an example definition of the URI parts processor:
|
|
|
|
[source,js]
|
|
--------------------------------------------------
|
|
{
|
|
"description" : "...",
|
|
"processors" : [
|
|
{
|
|
"uri_parts": {
|
|
"field": "input_field",
|
|
"target_field": "url",
|
|
"keep_original": true,
|
|
"remove_if_successful": false
|
|
}
|
|
}
|
|
]
|
|
}
|
|
--------------------------------------------------
|
|
// NOTCONSOLE
|
|
|
|
When the above processor executes on the following document:
|
|
|
|
[source,js]
|
|
--------------------------------------------------
|
|
{
|
|
"_source": {
|
|
"input_field": "http://myusername:mypassword@www.example.com:80/foo.gif?key1=val1&key2=val2#fragment"
|
|
}
|
|
}
|
|
--------------------------------------------------
|
|
// NOTCONSOLE
|
|
|
|
It produces this result:
|
|
|
|
[source,js]
|
|
--------------------------------------------------
|
|
"_source" : {
|
|
"input_field" : "http://myusername:mypassword@www.example.com:80/foo.gif?key1=val1&key2=val2#fragment",
|
|
"url" : {
|
|
"path" : "/foo.gif",
|
|
"fragment" : "fragment",
|
|
"extension" : "gif",
|
|
"password" : "mypassword",
|
|
"original" : "http://myusername:mypassword@www.example.com:80/foo.gif?key1=val1&key2=val2#fragment",
|
|
"scheme" : "http",
|
|
"port" : 80,
|
|
"user_info" : "myusername:mypassword",
|
|
"domain" : "www.example.com",
|
|
"query" : "key1=val1&key2=val2",
|
|
"username" : "myusername"
|
|
}
|
|
}
|
|
--------------------------------------------------
|
|
// NOTCONSOLE
|