Я, как и другие, призываю использовать Lucene, Sphinx или Solr.
Однако, если это не так и ваши требования просты, я использовал шаги здесь , чтобы создать простой поиск в ряде проектов в прошлом.
Эта ссылка предназначена для Symfony / PHP, но вы можете применить эти концепции к любому языку и структуре приложения, предполагая, что имеется реализация алгоритма стемминга.Однако, если вы не используете шаблон доступа к данным, где вы можете подключиться к обновлению индекса при обновлении записи, это не так легко выполнимо.Чтобы проиндексировать несколько таблиц, вы должны либо эмулировать ссылочную целостность в вашем DAL, либо добавить столбец fk для каждой отдельной таблицы, которую вы хотите проиндексировать.Я не уверен, что вы пытаетесь сделать, чтобы полностью исключить это.