Полнотекстовый поиск
А вы не смотрели в сторону Sphinx или, например Zend Lucene. Это первое, что пришло в голову. Хотя, честно говоря, не уверен, насколько они подходят для конкретной задачи.
Возможно панацея — company.yandex.ru/technologies/server/
Sphinx — не умеет нидексировать файлы.