2013-03-13 10 views
6

Sto cercando di implementare la ricerca di un nome e cognome utilizzando la ricerca full-text e SOUNDEX (nel caso in cui il nome sia errato).MySQL Ricerca full-text e SOUNDEX

stavo cercando di fare qualcosa di simile

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

ma questo non è una sintassi valida.

Quello che voglio ottenere, è che quando un utente digita ad esempio "Jon Ivan", le colonne

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

sarebbe partita.

Grazie in anticipo!

+0

Non sono sicuro se questo può essere combinato con MATCH ... CONTRO, ma forse la ricerca a testo integrale può affrontarla da sola? Ha * un po '* di tolleranza per le differenze di ortografia –

+1

correlati: [Qual è l'applicazione di ricerca di siti più semplice da implementare, che supporti la ricerca fuzzy?] (Http://stackoverflow.com/q/1899470) –

risposta

3

MySQL tende ad essere insufficiente quando si tratta di ricerche di testo, ricerche fuzzy, errori di ortografia, ecc. Consiglio vivamente una soluzione di indicizzazione come Solr. Solr supporta quattro diversi tipi di ricerche fonetiche: Soundex, RefinedSoundex, Metaphone e DoubleMetaphone. Ha ricerche geospaziali e ricerche errate con ricerca di farfalle/farfalle. Penso che sarai VERAMENTE felice dei risultati ottenuti. È un fulmine veloce rispetto a MySQL

Problemi correlati