转换处理器编辑

将当前摄取文档中的字段转换为不同的类型,例如将字符串转换为整数。如果字段值是数组,则所有成员都将被转换。

支持的类型包括:integerlongfloatdoublestringbooleanipauto

指定 boolean 将在字符串值等于 true(忽略大小写)时将字段设置为 true,在字符串值等于 false(忽略大小写)时设置为 false,否则将抛出异常。

指定 ip 将在 field 包含可以索引到 IP 字段类型 中的有效 IPv4 或 IPv6 地址时,将目标字段设置为 field 的值。

指定 auto 将尝试将字符串值的 field 转换为最接近的非字符串、非 IP 类型。例如,值为 "true" 的字段将转换为其相应的布尔类型:true。请注意,在 auto 中,float 优先于 double。值为 "242.15" 将“自动”转换为类型为 float242.15。如果提供的字段无法适当地转换,处理器仍将成功处理并将字段值保留原样。在这种情况下,target_field 将使用未转换的字段值进行更新。

表 9. 转换选项

名称 必需 默认值 描述

field

-

要转换其值的字段

target_field

field

要将转换后的值分配到的字段,默认情况下 field 将就地更新

type

-

要将现有值转换成的类型

ignore_missing

false

如果 truefield 不存在或为 null,则处理器将静默退出,不会修改文档

description

-

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

if

-

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

ignore_failure

false

忽略处理器的失败。请参阅 处理管道失败

on_failure

-

处理处理器的失败。请参阅 处理管道失败

tag

-

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

PUT _ingest/pipeline/my-pipeline-id
{
  "description": "converts the content of the id field to an integer",
  "processors" : [
    {
      "convert" : {
        "field" : "id",
        "type": "integer"
      }
    }
  ]
}