Ошибка работы с процессором "ScrollElasticSearchHttp" в NiFi - PullRequest
0 голосов
/ 05 февраля 2020

Я пытаюсь получить данные из индекса в ElasticSearch. Я настроил процессор QueryElasticSearchHttp, и он работает просто отлично. Однако, когда я пытаюсь использовать процессор ScrollElasticsearchHttp с тем же URL-адресом, запросом, свойствами индекса и установить для «прокрутки» значение по умолчанию 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]

Я на Apache NiFi 1.10.0

Вот конфигурация для процессора: я должен увидеть всего 441 посещений, а с размером страницы 20 я должен увидеть 23 запроса к ES. Но я не вернул ни одного результата. Я пробовал более высокие значения для «прокрутки», а также поиграл с «размером страницы», но безрезультатно.

Я также заметил, что, хотя процессор ScrollElasticsearchHttp настроен на работу каждые 1 м, в журнале ES я не вижу ни одного журнала ошибок, повторяющегося каждую минуту.

enter image description here

enter image description here

Обновление:

Когда я очистил состояние с помощью пользовательского интерфейса: «Просмотр состояния» -> «Очистить состояние», я смог сделать один вызов, который вернул страницу, полную попаданий в одном потоковом файле. Тем не менее, есть еще страницы для поиска. Как заставить процессор go извлекать следующую страницу?

Насколько я понимаю, один вызов ScrollElasticsearchHttp будет пролистывать все наборы результатов и отображать каждую страницу в виде одного потокового файла. Разве это не правильно?

...