elasticsearch 使用“时出错”;ScrollElasticSearchHttp";NiFi中的处理器,elasticsearch,apache-nifi,elasticsearch,Apache Nifi" /> elasticsearch 使用“时出错”;ScrollElasticSearchHttp";NiFi中的处理器,elasticsearch,apache-nifi,elasticsearch,Apache Nifi" />

elasticsearch 使用“时出错”;ScrollElasticSearchHttp";NiFi中的处理器

elasticsearch 使用“时出错”;ScrollElasticSearchHttp";NiFi中的处理器,elasticsearch,apache-nifi,elasticsearch,Apache Nifi,我正在尝试从ElasticSearch中的索引检索数据。我配置了“QueryLasticsearchHTTP”处理器,它工作正常。但是,当我尝试使用具有相同URL、查询、索引属性的ScrollAsticSearchHTTP处理器并将“scroll”设置为默认1分钟时,它不起作用 我得到一个404的错误响应:“Elasticsearch返回代码404,消息未找到”。 我还在跟踪ES集群上的日志,我看到了这个错误 [DEBUG][o.e.a.s.TransportSearchScrollAction

我正在尝试从ElasticSearch中的索引检索数据。我配置了“QueryLasticsearchHTTP”处理器,它工作正常。但是,当我尝试使用具有相同URL、查询、索引属性的ScrollAsticSearchHTTP处理器并将“scroll”设置为默认1分钟时,它不起作用

我得到一个404的错误响应:“Elasticsearch返回代码404,消息未找到”。 我还在跟踪ES集群上的日志,我看到了这个错误

[DEBUG][o.e.a.s.TransportSearchScrollAction] [2] Failed to execute query phase
org.elasticsearch.transport.RemoteTransportException:[127.0.0.1:9300][indices:data/read/search[phase/query+fetch/scroll]]
Caused by: org.elasticsearch.search.SearchContextMissingException: No search context found for id [2]
at org.elasticsearch.search.SearchService.getExecutor(SearchService.java:457) ~[elasticsearch-7.5.2.jar:7.5.2]
我使用的是ApacheNIFI 1.10.0

以下是处理器的配置: 我应该看到总共441次点击,页面大小为20时,我应该看到对ES的23次查询。 但我没有得到任何结果。我尝试了更高的“滚动”值,也尝试了“页面大小”,但没有效果

我还注意到,尽管ScrollElasticsearchHttp处理器设置为每1m运行一次,但在ES日志中,我没有看到任何错误日志每分钟重复一次

更新:

当我通过UI清除状态:“查看状态”->“清除状态”时,我能够进行一次调用,在一个流文件中返回一个充满点击的页面。 但是,还有更多的页面需要检索。如何使处理器获取下一页


我的理解是,ScrolleAsticSearchHTTP的单个调用将遍历所有结果集,并将每个页面作为一个流文件引入。这不正确吗?

请将计划时间缩短到10-20秒左右。因此,每隔10-20秒,处理器将根据页面大小获取下一组记录。 您可以在抓取过程进行时检查状态值,即您将在其中找到一个滚动id。抓取过程完成后,状态值将更改为“finishedQuery”:true