Написать алгоритм нечеткого поиска самому или использовать существующие.
Попробуйте составить хеши так:
Пример: Познавательное
Hash: онаепзвтль:14
[по-порядку максимально часто встречающийся символ][и т.д. из оставшихся]:[общее кол-во символов]
Ввод: познаватильное
hash: онапзвтилье:14
При несовпадении - отодвигаете влево на 1 символ на каждой итерации:
1. онаепзвтль:14 == онапзвтилье:14 - не найдено
2. онаепзвтль == онапзвтилье - не найдено
3. онаепзвтл == онапзвтиль- не найдено
....
N. она == она - НАЙДЕНО (кроме этого может быть еще что-то найдено).
Смотрим из результатов самые близкие по кол-ву символов. В примере: к 14-и.
Выводим первые N-совпадений... Например, первые 5 похожих...