Насколько я понимаю, для Вас могут быть полезными следующие подходы:
1) Информационно-поисковый.
Индексирование данных с вашей базы и настройка поискового механизма в соответствии предметной областью (списки синонимов, тезаурус, расширение поисковых запросов и т.п.)
2) Подход, основанный на машинном обучении.
Создание специализированных классификаторов, которые могли бы с некоторой степенью уверенности относить пользовательский запрос к той или иной тематике (можно использовать любые классификаторы - наивный байесовский, деревья принятия решений, SVM и т.д.). В данном случае следует тщательно продумать набор признаков (это могут быть и слова), которые использовать в качестве вектора параметров для классификатора.