Решением этой проблемы было бы свернуть панель инструментов перед прокруткой до заданной позиции. Это можно сделать, добавив app_bar_layout.setExpanded(false)
перед scrollToPosition.
Проверьте алгоритмы что использование Lucene, чтобы сделать его вещь. Они, вероятно, не будут очень просты, все же. Я должен был изучить некоторые из этих алгоритмов когда-то давно, и некоторые из них очень сложны.
Если можно определить "слова" в тексте, Вы хотите индексировать, просто создать большую хеш-таблицу слов, которая отображает хеш слова к его случаям в каждом файле. Если пользователи часто повторяют тот же поиск, кэшируют результаты поиска. Когда поиск сделан, можно затем проверить каждое местоположение для подтверждения падений критерия поиска там, а не просто слова с хешем соответствия.
Кроме того, кто действительно заботится, больше ли индекс, чем сами файлы? Если Ваша система действительно, это большое, с таким действием, является несколькими дюжинами концертов для индекса конец света?
grep
обычно работы вполне прилично для меня с большими журналами (иногда 12G +). Можно найти версию для окон здесь также.
Вы, скорее всего, захотите интегрировать некоторый тип индексации поисковой системы в Ваше приложение. Существуют десятки там, Lucene, кажется, очень популярен. Проверьте эти два вопроса еще на некоторые предложения:
Лучшая текстовая поисковая система для интеграции с пользовательским веб-приложением?
Можно хотеть проверить источник для BSD grep
. Вы не можете полагаться на grep, являющийся там для Вас, но ничто не говорит, что Вы не можете воссоздать схожую функциональность, правильно?
Больше деталей о виде поиска, который Вы выполняете, могло определенно помочь. Да ведь в особенности Вы хотите полагаться на индекс, так как необходимо будет восстанавливать его каждый день, когда журналы переворачиваются? Какая информация находится в этих журналах? Часть его может быть отброшена, прежде чем это будет когда-либо даже зарегистрировано?
Сколько времени эти поиски берут теперь?
Splunk является большим для поиска большого количества журналов. Может быть излишество для Вашей цели. Вы платите согласно объему данных (размер журналов), Вы хотите обработать. Я вполне уверен, у них есть API, таким образом, Вы не должны использовать их фронтенд, если Вы не хотите.