UpdateByQueryElasticsearch

文档中心 › 组件索引 › UpdateByQueryElasticsearch

UpdateByQueryElasticsearch Processor

类型全限定名:cn.org.acal.lynxus.processors.elasticsearch.UpdateByQueryElasticsearch

所属 Bundle:cn.org.acal.lynxus:lynxus-elasticsearch-restapi-nar:2.11.8

描述

使用查询更新 Elasticsearch 索引中的文档。查询可以从 FlowFile 主体或 Query 参数加载。加载的查询可以包含 Elasticsearch 的 _update_by_query API 接受的任何 JSON,例如用于标识要更新的文档的 'query' 对象,以及用于定义要执行的更新的 'script'。

标签

elasticelasticsearchelasticsearch7elasticsearch8elasticsearch9updatequery

属性

下表中,加粗的属性为必填项;其余为可选项。表格同时标注默认值、是否支持表达式语言,以及是否为敏感属性(值会被加密)。

名称默认值可选值描述
Query Definition Stylefull
  • FULL_QUERY — 提供完整的查询。
  • BUILD_QUERY — 从单独的 JSON 对象构建查询。
如何定义 JSON 查询以供处理器使用。
QueryJSON 语法的查询,不是 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 Length20 MB解析 JSON 文档或属性时字符串值允许的最大长度。
Client Service控制器服务 API:
ElasticSearchClientService
cn.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": {}
  }
}