Jednym z podejść jest przyjrzenie się odległości Levenshteina między wyszukiwanym terminem a listą słów kluczowych. Jest kilka przykładów jak to zaimplementować w MySQL, np. TU
Ponieważ masz tak duży katalog, musisz najpierw przyjrzeć się zaimplementowaniu filtra (być może opartego na wyszukiwaniu „LUBIE”), aby nie mierzyć odległości dla wszystkich 1 mln wierszy.
Jeśli uszeregujesz wyniki według odległości, powinieneś być w stanie posortować wyniki według trafności wyszukiwania.