Можно ли использовать Elasticsearch для поиска в файлах?
Elasticsearch не предназначен для индексирования файлов непосредственно. Поскольку используется SDK для работы через API, при создании документов с текстом. Таким образом, они (документы) индексируются и доступны для последующего поиска.
Кроме того, Elasticsearch плохо работает в случае частых обновлений, поскольку ему надо часто обновлять кэш, и это приводит к дополнительным накладным расходам. Короче, Elasticsearch - это перебор для данной задачи.
Не понятно зачем используется файл, когда можно использовать СУБД. Например, RediSearch (из Redis Stack) - позволяет производить полнотекстовый поиск,
включая русский.
Так, вместо большого файла приложение должно работать с СУБД, храня единицы документов (то, что в вашей терминологии называется блоком).
В реальности файл гораздо меньше. Он где-то 10Мб (Max) и перезаписывается подобно стеку: Первый зашёл - первый ушёл. Дозапись в конец файла с фиксированным количеством текстовых блоков.
Что касается очереди FIFO, то она поддерживается в Redis. В ней можно хранить идентификаторы документов, подлежащих обработке.