Mysql
 sql >> Database >  >> RDS >> Mysql

Suggerire altre query per l'ortografia arcaica (ad es. Did You Mean di Google)

"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.