Словарей не использовал - нет необходимости в данном случае. Просто окончание обрубается.
Но есть небольшой словарь синонимов (в основном для терминов различных) например если введете "Питер" - выделиться "Санкт-Петербург"
+ Анализирует релевантность по количеству совпадений (слово целиком и без окончания имеют разные весовые коэфф.), сгруппированности ключевых слов, отношению длины текста к длине совпадений и т.п.
P.S. За производительность ногами не бейте... пока. Т.к. на стадии разработки и оптимизации.