# Convert Processor（转换处理器）

原文链接 : [https://www.elastic.co/guide/en/elasticsearch/reference/5.3/convert-processor.html](https://www.elastic.co/guide/en/elasticsearch/reference/5.3/convert-processor.html)

译文链接 : [http://www.apache.wiki/pages/viewpage.action?pageId=9406810](http://www.apache.wiki/pages/viewpage.action?pageId=9406810)

贡献者 : [那伊抹微笑](/display/~wangyangting)，[ApacheCN](/display/~apachecn)，[Apache中文网](/display/~apachechina)

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

所支持的 **type**（类型）包括 : **integer**，**float**，**string**，**boolean**，和 **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.15** 的 **float** 类型。如果所提供的 **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"
  }
}
```