SearchElasticsearch 2025.5.31.15

捆绑包

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

描述

一种允许用户重复运行使用 Elasticsearch JSON DSL 编写的分页查询(包含聚合)的处理器。Search After/Point in Time 查询必须包含有效的“sort”字段。该处理器将检索多页结果,直到没有更多结果可用或 Pagination Keep Alive 期限到期为止,此后查询将重新开始,再次检索第一页结果。

标签

elasticsearch、elasticsearch5、elasticsearch6、elasticsearch7、elasticsearch8、json、page、query、scroll、search

输入要求

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-query

JSON 语法(而非 Lucene 语法)中的查询。例如:{"query":{"match":{"somefield":"somevalue"}}}。如果查询为空,则将使用默认 JSON 对象,这将导致 Elasticsearch 中出现“match_all”查询。

el-rest-query-clause

JSON 语法(而非 Lucene 语法)中的“query”子句。例如:{"match":{"somefield":"somevalue"}}。如果查询为空,则将使用默认 JSON 对象,这将导致 Elasticsearch 中出现“match_all”查询。

el-rest-query-definition-style

如何定义 JSON 查询以供处理器使用。

el-rest-split-up-aggregations

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

el-rest-split-up-hits

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

el-rest-type

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

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-size

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

restart-on-finish

是否应在分页搜索完成后,处理器使用相同的查询开始另一次搜索。

状态管理

范围

描述

LOCAL

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

关系

名称

描述

aggregations

聚合将路由到此关系。

failure

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

hits

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

retry

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

写入属性

名称

描述

mime.type

application/json

aggregation.name

其结果在输出 FlowFile 中的聚合名称

aggregation.number

其结果在输出 FlowFile 中的聚合编号

page.number

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

hit.count

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

elasticsearch.query.error

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

另请参阅

语言: 中文