Когда ваше веб-приложение запускается (и каждые x минут после этого), кэшируйте каждый файл, который вы намереваетесь использовать в статической переменной.Когда пользователи ищут определенный файл, ищите ваш статический кеш, а не выполняйте поиск на реальном файловом сервере.
Кэширование все прекрасно работает, если все, что вы разрешаете, это поиск по имени файла.Вы можете хранить каждый путь к файлу в списке / массиве.Если список / массив уже отсортирован, вы можете использовать бинарный поиск для пользовательских поисковых запросов.Если есть подстановочные знаки, генерируйте правильное значение RegEx.
. Для полнотекстового поиска содержимого файла сохранение статически всего этого было бы невозможным.Сделайте что-нибудь ленивое, например, верните свои файлы в базу данных или купите поисковое устройство, например GSA http://www.google.com/enterprise/search/gsa.html