UpdateByQueryElasticsearch Processor
描述
使用查询更新 Elasticsearch 索引中的文档。查询可以从 FlowFile 主体或 Query 参数加载。加载的查询可以包含 Elasticsearch 的 _update_by_query API 接受的任何 JSON,例如用于标识要更新的文档的 'query' 对象,以及用于定义要执行的更新的 'script'。
标签
属性
| 名称 | 默认值 | 可选值 | 描述 |
|---|---|---|---|
| Query Definition Style | full |
| 如何定义 JSON 查询以供处理器使用。 |
| Query | | JSON 语法的查询,不是 Lucene 语法。例如:{"query":{"match":{"somefield":"somevalue"}}}。如果未设置此参数,将从 FlowFile 内容中读取查询。如果查询(属 支持表达式语言:是(使用 FlowFile 属性与环境/系统变量求值) | |
| Query Clause | | 使用 JSON 语法(而非 Lucene 语法)的 "query" 子句。例如:{"match":{"somefield":"somevalue"}}。如果查询为空,将使用默认的 JSON 对象,从而在 Elasticsearch 中产生 "match_all" 查询。 支持表达式语言:是(使用 FlowFile 属性与环境/系统变量求值) | |
| Script | | 在操作期间执行的 "script",使用 JSON 语法。例如:{"source": "ctx._source.count++", "lang": "painless"} 支持表达式语言:是(使用 FlowFile 属性与环境/系统变量求值) | |
| Query Attribute | | 如果设置,则执行的查询将在指定属性中的每个结果 FlowFile 上设置。 支持表达式语言:是(使用 FlowFile 属性与环境/系统变量求值) | |
| Index | | 要使用的索引的名称。 支持表达式语言:是(使用 FlowFile 属性与环境/系统变量求值) | |
| Type | | 该文档的类型(Elasticsearch 用于索引和搜索)。 支持表达式语言:是(使用 FlowFile 属性与环境/系统变量求值) | |
| Max JSON Field String Length | 20 MB | 解析 JSON 文档或属性时字符串值允许的最大长度。 | |
| Client Service | | 控制器服务 API:ElasticSearchClientServicecn.org.acal.lynxus-lynxus-elasticsearch-client-service-api-nar-2.11.8 | 用于运行查询的 Elasticsearch 客户端服务。 |
动态属性
| 名称 | 值 | 描述 |
|---|---|---|
| HTTP 请求头的名称 | 用于检索 HTTP 请求头值的 Record Path 表达式 | 前缀:HEADER: - 将指定的属性名称/值作为 HTTP 请求头添加到 Elasticsearch 请求中。如果 Record Path 表达式结果为 null 或空值,则将省略该 HTTP 请求头。 |
| 要添加的 URL 查询参数的名称 | URL 查询参数的值 | 在用于处理的 Elasticsearch URL 中将指定的属性名称/值添加为查询参数。这些参数将覆盖查询请求体中任何匹配的参数 |
关系 (Relationships)
| 名称 | 描述 | 自动终止 |
|---|---|---|
failure | 如果「按查询」操作失败且读取了 FlowFile,它将被发送到此关系。 | 否 |
retry | 由于服务器/集群可用性而失败的所有 FlowFile 都会转至此关系。 | 否 |
success | 如果「按查询」操作成功且读取了 FlowFile,它将被发送到此关系。 | 否 |
写入的 FlowFile 属性
| 名称 | 描述 |
|---|---|
elasticsearch.update.took | 完成更新操作所花费的时间(以毫秒为单位)。 |
elasticsearch.update.error | 如果运行更新出错,则 Elasticsearch 提供的错误消息。 |
状态管理
该组件不存储状态。
受限 (Restricted)
该组件不受限。
输入要求
该组件允许有传入连接。
详细说明
UpdateByQueryElasticsearch
该 Processor 使用 _update_by_query 处理器(handler)对一个或多个索引执行 更新操作。查询应为合法的 Elasticsearch JSON DSL 查询(不支持 Lucene 语法)。可以可选地指定一个 Elasticsearch 脚本,对匹配的文档执行。 带脚本的查询示例:
{
"script": {
"source": "ctx._source.count++",
"lang": "painless"
},
"query": {
"match": {
"username.keyword": "john.smith"
}
}
}
要更新索引的全部内容,可以使用:
{
"query": {
"match_all": {}
}
}