En fait, ce que fait Google est très peu trivial et, à première vue, contre-intuitif. Il ne procède pas à une vérification dans un dictionnaire, mais utilise des statistiques pour identifier les requêtes "similaires" qui ont donné plus de résultats que votre requête. L'algorithme exact n'est évidemment pas connu.
Il y a différents sous-problèmes à résoudre ici, comme une base fondamentale pour toutes les statistiques liées au traitement du langage naturel, il y a un livre indispensable : Fondation du traitement statistique du langage naturel .
Concrètement, pour résoudre le problème de la similarité entre les mots et les requêtes, j'ai obtenu de bons résultats avec l'utilisation de Modifier la distance Il s'agit d'une mesure mathématique de la similarité des chaînes de caractères qui fonctionne étonnamment bien. J'avais l'habitude d'utiliser Levenshtein mais les autres peuvent être intéressantes.
Le Soundex - d'après mon expérience - est merdique.
En fait, le stockage et la recherche efficaces d'un grand dictionnaire de mots mal orthographiés, ainsi que l'extraction en moins d'une seconde, ne sont pas non plus chose aisée. Votre meilleure chance est d'utiliser les moteurs d'indexation et d'extraction de texte intégral existants (c'est-à-dire pas celui de votre base de données), dont les suivants Lucene est actuellement l'un des meilleurs et, par coïncidence, il a été porté sur de nombreuses plateformes.