Во-первых, имейте в виду, что это вполне возможно, но это не просто реализовать.
Вы, похоже, знаете, что вам понадобятся два различных подхода: один длядинамическое содержимое, другое для статического.
Для поиска в БД: включите полнотекстовый поиск на стороне БД (я полагаю, вы работаете с SQL Server, вы этого не сделалискажем, с какой СУБД вы разрабатываете) для каждой "поисковой" таблицы в вашей БД.Создайте правило, которое генерирует правильную ссылку для каждой таблицы.
Для поиска статических страниц: я использовал Lucene.NET по той же причине и имел хороший опыт работы с ним.Кроме того, после нахождения нужного файла .html вам понадобится правило для создания правильной ссылки.
Редактировать Для этого вы также можете использовать некоторую интегрированную библиотеку, например SiteSearchASP.NET.Гораздо проще реализовать (но вам придется заплатить за это).