2013-03-13 14 views
6

Próbuję zaimplementować wyszukiwanie imienia i nazwiska za pomocą wyszukiwania pełnotekstowego i SOUNDEX (w przypadku, gdy nazwa jest błędnie napisana).Wyszukiwanie pełnotekstowe MySQL i SOUNDEX

Starałem się zrobić coś takiego

SELECT * 
    FROM employees 
WHERE 
    MATCH SOUNDEX(first_name, last_name) AGAINST SOUNDEX('John 1969 Ivan') 

ale to nie jest prawidłowa składnia.

Co chcę osiągnąć, jest to, że gdy użytkownik wpisze na przykład "Jon Ivan", kolumny

first_name | last_name 
---------------------- 
    John  Ivan 

będzie pasować.

Z góry dziękuję!

+0

Nie jesteś pewien, czy można to połączyć z MATCH ... AGAINST, ale może wyszukiwanie pełnotekstowe może rozwiązać to samodzielnie? Ma * pewną * tolerancję dla różnic w pisowni. –

+1

Powiązane: [Jaką najłatwiejszą aplikację do wyszukiwania stron można zastosować w wyszukiwaniu rozmytym?] (Http://stackoverflow.com/q/1899470) –

Odpowiedz

3

MySQL ma tendencję do upuszczania, jeśli chodzi o wyszukiwanie tekstu, wyszukiwanie rozmyte, błędy ortograficzne itp. Bardzo polecam rozwiązanie indeksujące, takie jak Solr. Solr obsługuje cztery różne rodzaje wyszukiwania fonetycznego: Soundex, RefinedSoundex, Metaphone i DoubleMetaphone. Posiada wyszukiwanie geoprzestrzenne i wyszukiwanie błędnie pisujące oraz wyszukiwanie motyli/motyli. Myślę, że NAPRAWDĘ będziesz zadowolony z wyników, jakie uzyskasz. Szybko się rozjaśnia w porównaniu do MySQL

Powiązane problemy