URI 部分处理器

编辑

解析统一资源标识符(URI)字符串,并将其组件提取为一个对象。此 URI 对象包含 URI 的域、路径、片段、端口、查询、方案、用户信息、用户名和密码的属性。

表 49. URI 部分选项

名称 必需 默认值 描述

field

-

包含 URI 字符串的字段。

target_field

url

URI 对象的输出字段。

keep_original

true

如果 true,处理器将未解析的 URI 复制到 <target_field>.original

remove_if_successful

false

如果 true,处理器在解析 URI 字符串后删除 field。如果解析失败,处理器不会删除 field

ignore_missing

false

如果 truefield 不存在,处理器将静默退出,而不修改文档。

description

-

处理器的描述。用于描述处理器的目的或其配置。

if

-

有条件地执行处理器。请参阅 有条件地运行处理器

ignore_failure

false

忽略处理器的故障。请参阅 处理管道故障

on_failure

-

处理处理器的故障。请参阅 处理管道故障

tag

-

处理器的标识符。用于调试和指标。

以下是 URI 部分处理器的示例定义

{
  "description" : "...",
  "processors" : [
    {
      "uri_parts": {
        "field": "input_field",
        "target_field": "url",
        "keep_original": true,
        "remove_if_successful": false
      }
    }
  ]
}

当以上处理器在以下文档上执行时

{
  "_source": {
    "input_field": "http://myusername:[email protected]:80/foo.gif?key1=val1&key2=val2#fragment"
  }
}

它会产生以下结果

"_source" : {
  "input_field" : "http://myusername:[email protected]:80/foo.gif?key1=val1&key2=val2#fragment",
  "url" : {
    "path" : "/foo.gif",
    "fragment" : "fragment",
    "extension" : "gif",
    "password" : "mypassword",
    "original" : "http://myusername:[email protected]: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"
  }
}