SQL SOUNDEX()

La fonction SOUNDEX() dans le langage SQL permet de retourner 4 caractères en fonction de la sonorité d’une chaîne de caractère. Cette chaîne de retour est régulièrement utilisée pour évaluer la similarité sonore entre 2 chaînes. Une utilisation courante consiste a utiliser cette fonction SQL pour améliorer la pertinence d’un algorithme dans le cas où un utilisateur se trompe dans l’orthographe d’un mot.

Attention : par défaut le système se base sur les sonorités anglaises. Dès lors, rien ne garanti un bon fonctionnement pour les autres langues.

Syntaxe

L’utilisation de cette fonction se fait via la syntaxe suivante :

SELECT SOUNDEX('hello');

Cette requête SQL retourne les résultats suivants :

H400

Exemple

Sonorité de “john” et “jone”

Il est possible de juger concrètement de la pertinence

SELECT SOUNDEX('john'), SOUNDEX('jone');

Résultat :

SOUNDEX('john')SOUNDEX('jone')
J500J500

Rechercher un utilisateur à partir de son prénom mal orthographié

Pour le bien de ce tutoriel, nous allons imaginer une application utilisant une base de données avec une table des utilisateurs.

Table utilisateur :

idprenomnom
1JohnSmith
2JoëlLemaitre
3ValéryBuisson

Cette application possède son propre moteur de recherche pour rechercher les utilisateurs. La fonction SOUNDEX() va permettre de récupérer la liste des utilisateurs en fonction d’un nom, du moment que le nom se prononce de la même façon.

La requête ci-dessous est un exemple m’étant en scène un utilisateur qui recherche l’utilisateur “john” avec une mauvaise orthographe, en utilisant à la place le mot “jone”.

SELECT id, prenom, nom
FROM utilisateur
WHERE SOUNDEX(prenom) = SOUNDEX('jone')

Résultat :

idprenomnom
1JohnSmith

Ce résultat démontre bien que la fonction peut aider un formulaire de recherche a trouver des résultats potentiellements pertinents.

Partager