ConsumeElasticsearch 2025.10.9.21

捆绑包

org.apache.nifi | nifi-elasticsearch-restapi-nar

描述

一种处理器,它使用范围查询对字段重复运行分页查询,以使用来自 Elasticsearch 索引/查询的新文档。该处理器将检索多页结果,直到没有更多结果可用或 Pagination Keep Alive 期限到期为止,此后范围查询将根据最后检索到的文档值自动更新字段约束条件。

标签

elasticsearch, elasticsearch7, elasticsearch8, elasticsearch9, json, page, query, scroll, search

输入要求

FORBIDDEN

支持敏感的动态属性

false

属性

属性

描述

Additional Filters

JSON 语法(而不是 Lucene 语法)中的一个或多个查询筛选器。例如:[{"match":{"somefield":"somevalue"}}, {"match":{"anotherfield":"anothervalue"}}]。这些筛选器将用作 Bool 查询筛选器的一部分。

Aggregation Results Format

聚合输出的格式。

Aggregation Results Split

输出一个包含所有聚合的 FlowFile,或者为每个单独的聚合输出一个 FlowFile。

Aggregations

一个或多个查询聚合(或“aggs”),采用 JSON 语法。例如:{"items": {"terms": {"field": "product", "size":10}}}

Client Service

用于运行查询的 Elasticsearch 客户端服务。

字段

要检索的已编制索引的文档的字段,采用 JSON 语法。例如:["user.id", "http.response.*", {"field": "@timestamp", "format": "epoch_millis"}]

索引

要使用的索引的名称。

Initial Value

如果处理器之前没有运行过,则为用于查询的初始值。如果处理器之前运行过并在其状态中存储了值,则会忽略此属性。如果未提供任何值,并且处理器之前没有运行过,则不会使用范围查询边界,即:将按照指定的“Sort Order”检索所有文档。

初始值日期格式

如果“Range Query Field”是“Date”字段,请将“Initial Value”转换为此格式的日期。如果未指定,Elasticsearch 将使用“Range Query Field”的映射提供的日期格式。有关有效的语法,请参阅 https://www.elastic.co/guide/en/elasticsearch/reference/current/mapping-date-format.html (https://www.elastic.co/guide/en/elasticsearch/reference/current/mapping-date-format.html)

初始值日期时区

如果“Range Query Field”是“Date”字段,请将“Initial Value”转换为此时区的 UTC。有效值为 ISO 8601 UTC 偏移量(例如“+01:00”或“-08:00”)和 IANA 时区 IDs(例如“欧洲/伦敦”)。

最大 JSON 字段字符串长度

解析 JSON 文档或属性时字符串值的最大允许长度。

Output No Hits

即使没有找到查询的“hits”,也要输出“hits”FlowFile。如果为 true,则即使输出“aggregations”,也会输出一个空的“hits”FlowFile。

Pagination Keep Alive

分页“keep_alive”时间段。Elasticsearch 将在请求之间保持滚动/pit 游标存活的时间段(此时间并非预期返回所有页面的总时长,而是两次分页检索请求之间允许的最大间隔时间)。

Pagination Type

要使用的分页方法。并非所有 Elasticsearch 版本都支持所有类型,请查看 Elasticsearch 文档以确认哪些适用于您的服务并推荐使用。

Query Attribute

如果设置此参数,系统将在每个结果 FlowFile 的指定属性中记录所执行的查询。

范围查询字段

作为 Elasticsearch 范围查询的一部分,使用“gt”边界匹配进行跟踪的字段。该字段必须存在于 Elasticsearch 文档中才能检索到。

Script Fields

Fields to created using script evaluation at query runtime, in JSON syntax. Ex: {"test1": {"script": {"lang": "painless", "source": "doc[ 'price'].value * 2"}}, "test2": {"script": {"lang": "painless", "source": "doc[ 'price'].value * params.factor", "params": {"factor": 2.0}}}}

搜索结果格式

Hits 输出格式。

搜索结果拆分

输出一个包含所有命中的 FlowFile,或者输出一个包含所有分页响应中所有命中的 FlowFile。

大小

查询中要检索的最大文档数。如果查询是分页的,则此“大小”是应用查询的每个页面,而不是整个结果集的“大小”。

排序

按一个或多个字段对结果进行排序,采用 JSON 语法。例如:[{"price" : {"order" : "asc", "mode" : "avg"}}, {"post_date" : {"format": "strict_date_optional_time_nanos"}}]

Sort Order

对“Range Query Field”进行排序的顺序。系统会将“Range Query Field”字段的“sort”子句放置在任何提供的“Sort”子句前面。如果“Range Query Field”字段已经存在“sort”子句,则不会对其进行更新。

Type

此文档的类型(由 Elasticsearch 用于建立索引和执行搜索)。

状态管理

范围

描述

CLUSTER

分页状态(scrollId、searchAfter、pitId、hitCount、pageCount、pageExpirationTimestamp、trackingRangeValue)在此处理器的调用之间保留,直到 Scroll/PiT 到期(当前时间晚于上次执行查询的时间加上“Pagination Keep Alive”时间间隔)。

关系

名称

描述

aggregations

聚合将路由到此关系。

failure

所有因与服务器可用性无关的原因而失败的 FlowFile 都将转到此关系。

hits

搜索命中将路由到此关系。

retry

所有因服务器/集群可用性而失败的 FlowFile 都将转到此关系。

写入属性

名称

描述

mime.type

application/json

page.number

返回结果的页面(请求)编号,从 1 开始,包含在输出 FlowFile 中。

hit.count

包含在输出 FlowFile 中的命中次数

elasticsearch.query.error

当查询索引出现错误时由 Elasticsearch 提供的错误消息。

另请参阅

语言: 中文