"Did you mean" di Google è piuttosto interessante:Come funziona Google "Volevi dire?" L'algoritmo funziona?
In passato, sono riuscito a implementare qualcosa di simile con SOUNDEX che può approssimare tale funzionalità.
Martin, Martyn e Martine producono lo stesso output da SOUNDEX
.
Potresti includere tutti i risultati di SOUNDEX
corrispondenza o seleziona i risultati richiesti e quindi select distinct name from table where SOUNDEX(name) = SOUNDEX(search_var)
come i tuoi "suggerimenti".
Come ottimizzazione, puoi precalcolare SOUNDEX sui campi di ricerca e mantenerlo come una colonna indicizzata per evitare scansioni della tabella.
Non è sofisticato come Did You Mean di Google, ma puoi avvicinarti ragionevolmente molto rapidamente.