Вариант для ограниченного словаря слов.
-Составляем массив всех слов из текстов, поиск по которым будем вести. Каждое слово обрабатываем стеммером. Выкидываем короткие основы. Оставляем в массиве только уникальные основы.
-Каждую строку по которой будем искать превращаем в массив, состоящий из индексов основ слов в словаре. Сортируем массив.
-Аналогично делаем со строкой которую будем искать. Так как в ней могут быть новые слова, чтобы найти индекс основы слова в словаре, ищем основу с наименьшим левенштейном по отношению к данной основе слова. Сортируем массив.
-Теперь похожесть текстов можем сравнивать, как длинну разности массивов индексов.