Convert Processor(转换处理器)

将现有 field(字段)的 value(值)converts(转换)为 different type(不同的类型),例如将 string 转换为 integer。如果字段的值是 array(数组),则会转换所有的成员。

所支持的 type(类型)包括 : integerfloatstringboolean,和 auto

指定的类型为 boolean 的情况下,如果该字段的 string value(字符串值)与 true 相等(忽略大小写),则将该 field(字段)设置为 true。如果该字段的 string value(字符串值)与 false 相等(忽略大小写),则将该 field(字段)设置为 false,否则将抛出 exception(异常)。

执行的类型为 auto 的情况下,将会尝试将 string-valued(字符串值类型的)field(字段)转换为最接近的 non-string type(非字符串类型)。例如,字段值为 “true” 的情况下将会被转换为相应的 boolean type(布尔类型): true。如果字段的值为 “242.15”,将会被自动转换为 242.15float 类型。如果所提供的 field(字段)不能被正确的转换,则 Convert processor 仍将会成功的处理,并按原样保留字段值。在这种情况下,target_field 仍将使用未转换的字段值更新。

Table 15. Convert Options(表 15. 转换选项)

Name(名称) Required(必要的) Default(默认值) Description(描述)
field yes - 将要转换其值的 field(字段)。
target_field no field 指定转换结果的 field(字段),默认情况下更新到原来的 field 上。
type yes - 转换现有值的 type
ignore_missing no false 如果为 true 的情况下,并且该 field 不存在或者是 null,则该 processor(处理器)将静默退出而不修改文档。
{
  "convert": {
    "field" : "foo",
    "type": "integer"
  }
}