Организовывать поиск внутри приложения, по имеющимся сущностям - это не реально, мне кажется. По каким полям искать? Как ранжировать результаты?
Лучше пойти путем "краулеров" от поисковых систем, которые сканируют и собирают контент, обходя сайт как поисковый робот. Все результаты можно уместить в 1 таблице вида:
link, title, content, last_update
У Симфони есть мощный инструмент commands, с помощью которого можно создавать консольные приложения.
Я бы пошел путем написания "краулера" которого можно запускать по крону. Краулер будет сканировать ваш же сайт и индексировать контент. У Симфони так же есть DomCrawler компонент, которым легко выбрать все ссылки на странице, а так же собрать текстовый контент. Текстовый контент можно помещать в специальный тег (например ) или просто классом, чтобы не парсить все подряд.
Алгоритм примерно такой:
1. парсим "/"
2. сохраняем контент из тега
3. сохраняем все новые ссылки (исключая внешние ссылки и pdf, doc, etc) в табличке.
4. парсим следующую запись из нашей таблицы.
Таким образом обходим весь сайт по крону.
P.S.
Я бы еще поискал готовые бандлы, наверняка они есть.