В основном вам нужен конечный автомат, который может обрабатывать поток.Этот поток ограничен файлом ... Каждый раз, когда файл увеличивается, вы читаете то, что было добавлено к нему (например, команду tail linux, которая добавляет к стандартному выводу строки, добавленные в файл).
Есливам нужно остановить / перезапустить ваш анализатор, вы можете либо просто сохранить где-нибудь начальную позицию (которая может зависеть от окна, которое вам нужно для сопоставления с образцом), и перезапустить его.Или вы можете перезапустить с нуля.
Это для части проблемы "увеличение файла".
Для лучшего способа обработки контента, это зависит от того, что вам действительно нужно, чтовид данных и шаблон, который вы хотите применить.Регулярное выражение, возможно, является лучшим решением: гибкое, быстрое и относительно удобное.
Насколько я понимаю, Lucene было бы неплохо, если бы вы захотели выполнить поиск документов, соответствующий содержанию на естественном языке.Это был бы плохой выбор, чтобы сопоставить все даты или все строки с определенным свойством.Кроме того, потому что Lucene сначала делает индекс документа ... Это помогло бы только для очень тяжелой обработки, поскольку индексация в первую очередь требует времени.