Mam bazę z powiedzmy 30 tys różnych fraz.
Wpisuję jakąś fraze w pole input np naprawa samochodów i system powinien wyszukać w tych frazach podobne frazy z tym że najbardziej podobne będą na samym początku czyli wynik mógłby wyglądać np tak:
samochodowa naprawa
naprawy samochodów
naprawa samochodowa
naprawa aut
remont samochodów
itd
Jak takie coś zrobić?

na razie mam tak:
ucinam z frazy szukanej końcówki i dzielę na wyrazy i szukam w bazie 'słowo%'
Później przelatuję przez wszystkie wyniki i sortuję w php na takiej zasadzie:
dzielę frazę szukana i znalezioną na słowa i przelatuję przez wszystkie kombinacje levensteinem - wyniki sumuję i fraza z najniższym wynikiem levensteina trafia na początek.
Nie sprawdza się to przy powyżej 3 wyrazach.
Jak usprawnić takie sortowanie?