# Processors（处理器）

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

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

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

所有在 **pipeline**（管道）中的 **processor**（处理器）以下列的方式定义 : 

```
{
  "PROCESSOR_NAME" : {
    ... processor configuration options ...
  }
}
```

每个 **processor**（处理器）定义自己的配置参数，但所有 **processor**（处理器）都有声明 **`tag `**和 `**on_failure** `字段的能力。这些字段是可选的。

该 **tag** 只是 **pipeline**（管道）中某个指定的 **processor**（处理器）示例的 **string** **identifier**（字符串标识符）。该 **`tag `**字段不会影响 **processor**（处理器）的行为，但对于特定 **processor**（处理器）的记录和跟踪错误非常有用。

请参阅 [处理管道中的故障](/pages/viewpage.action?pageId=9406217) 以学习更多关于 **pipelines**（管道）中 **on_failure** 字段和错误的处理。

该 [node info API](https://www.elastic.co/guide/en/elasticsearch/reference/5.3/cluster-nodes-info.html#ingest-info "Ingest informationedit") 可用于找出 **cluster**（集群）中可用的 **processor**（处理器）。该 [node info API](https://www.elastic.co/guide/en/elasticsearch/reference/5.3/cluster-nodes-info.html#ingest-info "Ingest informationedit")将会提供一个每个 **nodes**（节点）可用的 **processor**（处理器）的列表。

**Custom** **processors**（自定义处理器）必须安装在所有 **nodes**（节点）上。如果 **pipeline** 中的 **processor** 不存在于所有的 **nodes**（节点）上 [Put Pipeline API](/display/Elasticsearch/Put+Pipeline+API) 将会故障。如果您依赖  **custom** **processor** **plugins**（自定义的处理器插件），通过在 **config/elasticsearch.xml** 文件中设置 **plugin.mandatory** 属性来确保强制性的标记了这些插件。例如 : 

如果任何一个插件不可用，则节点将不会启动。

该 [node stats API](https://www.elastic.co/guide/en/elasticsearch/reference/5.3/cluster-nodes-stats.html#ingest-stats "Ingest statisticsedit") 可用于采集 **ingest **全局的以及在每个 **pipeline** （管道）下的使用情况的统计数据。对于找出哪些 **pipeline**（管道）被使用最多或花费最多的时间进行预处理是**非常有帮助的**。