ConsumeElasticsearch 2025.5.31.15¶
捆绑包¶
org.apache.nifi | nifi-elasticsearch-restapi-nar
描述¶
一种处理器,它使用范围查询对字段重复运行分页查询,以使用来自 Elasticsearch 索引/查询的新文档。该处理器将检索多页结果,直到没有更多结果可用或 Pagination Keep Alive 期限到期为止,此后范围查询将根据最后检索到的文档值自动更新字段约束条件。
输入要求¶
FORBIDDEN
支持敏感的动态属性¶
false
属性¶
属性 |
描述 |
---|---|
最大 JSON 字段字符串长度 |
解析 JSON 文档或属性时字符串值的最大允许长度。 |
el-query-attribute |
如果设置此参数,系统将在每个结果 FlowFile 的指定属性中记录所执行的查询。 |
el-rest-client-service |
用于运行查询的 Elasticsearch 客户端服务。 |
el-rest-fetch-index |
要使用的索引的名称。 |
el-rest-format-aggregations |
聚合输出的格式。 |
el-rest-format-hits |
Hits 输出格式。 |
el-rest-output-no-hits |
即使没有找到查询的“hits”,也要输出“hits”FlowFile。如果为 true,则即使输出“aggregations”,也会输出一个空的“hits”FlowFile。 |
el-rest-pagination-keep-alive |
分页“keep_alive”时间段。Elasticsearch 将在请求之间保持滚动/pit 游标存活的时间段(此时间并非预期返回所有页面的总时长,而是两次分页检索请求之间允许的最大间隔时间)。 |
el-rest-pagination-type |
要使用的分页方法。并非所有 Elasticsearch 版本都支持所有类型,请查看 Elasticsearch 文档以确认哪些适用于您的服务并推荐使用。 |
el-rest-split-up-aggregations |
输出一个包含所有聚合的 FlowFile,或者为每个单独的聚合输出一个 FlowFile。 |
el-rest-split-up-hits |
输出一个包含所有命中的 FlowFile,或者输出一个包含所有分页响应中所有命中的 FlowFile。 |
el-rest-type |
此文档的类型(由 Elasticsearch 用于建立索引和执行搜索)。 |
es-rest-additional-filters |
JSON 语法(而不是 Lucene 语法)中的一个或多个查询筛选器。例如:[{"match":{"somefield":"somevalue"}}, {"match":{"anotherfield":"anothervalue"}}]。这些筛选器将用作 Bool 查询筛选器的一部分。 |
es-rest-query-aggs |
一个或多个查询聚合(或“aggs”),采用 JSON 语法。例如:{"items": {"terms": {"field": "product", "size":10}}} |
es-rest-query-fields |
要检索的已编制索引的文档的字段,采用 JSON 语法。例如:["user.id", "http.response.*", {"field": "@timestamp", "format": "epoch_millis"}] |
es-rest-query-script-fields |
查询运行时通过脚本评估创建的字段,采用 JSON 语法。例如:{"test1": {"script": {"lang": "painless", "source": "doc['price'].value * 2"}}, "test2": {"script": {"lang": "painless", "source": "doc['price'].value * params.factor", "params": {"factor":2.0}}}} |
es-rest-query-sort |
按一个或多个字段对结果进行排序,采用 JSON 语法。例如:[{"price" : {"order" : "asc", "mode" : "avg"}}, {"post_date" : {"format": "strict_date_optional_time_nanos"}}] |
es-rest-range-field |
作为 Elasticsearch 范围查询的一部分,使用“gt”边界匹配进行跟踪的字段。该字段必须存在于 Elasticsearch 文档中才能检索到。 |
es-rest-range-format |
如果“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) |
es-rest-range-initial-value |
如果处理器之前没有运行过,则为用于查询的初始值。如果处理器之前运行过并在其状态中存储了值,则会忽略此属性。如果未提供任何值,并且处理器之前没有运行过,则不会使用范围查询边界,即:将按照指定的“Sort Order”检索所有文档。 |
es-rest-range-time-zone |
如果“Range Query Field”是“Date”字段,请将“Initial Value”转换为此时区的 UTC。有效值为 ISO 8601 UTC 偏移量(例如“+01:00”或“-08:00”)和 IANA 时区 IDs(例如“欧洲/伦敦”)。 |
es-rest-size |
查询中要检索的最大文档数。如果查询是分页的,则此“大小”是应用查询的每个页面,而不是整个结果集的“大小”。 |
es-rest-sort-order |
对“Range Query Field”进行排序的顺序。系统会将“Range Query Field”字段的“sort”子句放置在任何提供的“Sort”子句前面。如果“Range Query Field”字段已经存在“sort”子句,则不会对其进行更新。 |
状态管理¶
范围 |
描述 |
---|---|
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 提供的错误消息。 |