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

Foreslår andre forespørgsler til arkaiske stavemåder (f.eks. Googles Did You Mean)

Googles "menede du" er ret interessant:Hvordan betyder Google "Mente du?" Virker algoritmen?

Tidligere har jeg formået at implementere noget lignende med SOUNDEX som kan tilnærme den funktionalitet.

Martin, Martyn og Martine giver det samme output fra SOUNDEX .

Du kan inkludere alle resultater fra SOUNDEX match, eller vælg de resultater, de bad om, og select distinct name from table where SOUNDEX(name) = SOUNDEX(search_var) som dine 'forslag'.

Som en optimering kan du forudberegne SOUNDEX på søgefelter og fortsætte det som en indekseret kolonne for at undgå tabelscanninger.

Det er ikke så sofistikeret som Googles Did You Mean, men du kan meget hurtigt komme rimelig tæt på.



  1. Django-forespørgsel, hvor et felt er dublet, og et andet er anderledes

  2. Brug variabel med TOP i select-sætning i SQL Server uden at gøre den dynamisk

  3. Få eksekveringstid for PostgreSQL-forespørgsel

  4. Sql*plus returnerer altid exit-kode 0?