Fonctions de correspondance phonétique
Le langage SQL de Netezza Performance Server supporte deux fonctions de correspondance phonétique que vous pouvez utiliser pour encoder les noms en représentations phonétiques en utilisant les algorithmes SoundEx NYSIIS ou Double Metaphone.
L'encodage phonétique des noms permet de faire correspondre les noms en fonction de leur prononciation et de réduire les erreurs pouvant résulter de variations orthographiques. Les fonctions de correspondance phonétique ne sont pas des comparaisons sensibles à la casse ; les représentations phonétiques sont les mêmes pour deux chaînes qui ont la même orthographe mais une casse différente. Ces fonctions prennent en charge les types de données VARCHAR et CHAR, et plus particulièrement le sous-ensemble ASCII du codage Latin9. Les fonctions ignorent tout caractère en dehors du sous-ensemble ASCII.
SoundEx NYSIIS
<varchar(6) value> = nysiis(<str_expr>)Le Soundex est un algorithme phonétique bien connu qui permet d'indexer les noms en fonction du son tel qu'il est prononcé en anglais. Cette fonction convertit une chaîne de caractères en sa représentation Soundex en utilisant la variante du Soundex du New York State Identification and Intelligence System (NYSIIS). La valeur de retour est une chaîne de six caractères maximum qui identifie la prononciation de la chaîne d'entrée. Par exemple, la fonction " nysiis('Washington') renvoie la chaîne "wasang", tandis que la fonction " nysiis('brown') renvoie la valeur "bran".
Double métaphore
<int4 value> = dbl_mp(<str_expr>)Le double métaphore est un autre algorithme phonétique permettant d'indexer les chaînes de caractères en fonction de leur prononciation. Similaire à Soundex, il utilise un ensemble de règles différentes pour l'anglais et la prononciation alternative. La fonction renvoie deux encodages de chaîne de 4 caractères, une clé primaire et une clé secondaire (ou alternative), pour la prononciation de la chaîne d'entrée. Les mots de même sonorité partagent les mêmes clés, bien qu'ils puissent être de longueur et d'orthographe différentes. Par exemple, les clés primaires et secondaires à double métaphore du nom "washington" sont "AXNK" et "FXNK".
Pour améliorer les performances, la fonction 'dbl_mp fait correspondre les clés de 4 caractères à des nombres de 16 bits et renvoie une valeur composite de 32 bitsNetezza Performance Server type int4) qui contient à la fois les clés primaires et secondaires de 16 bits. La fonction " dbl_mp('washington') renvoie donc la valeur 781598358.
Il existe trois fonctions d'aide (pri_mp, " sec_mp et " score_mp) que vous pouvez utiliser pour extraire les clés primaires et secondaires de la valeur de retour sous forme de chaînes et pour effectuer des comparaisons de clés afin de déterminer la pertinence de la notation.
Métaphore primaire
<varchar(4) value> = pri_mp(<int4 dbl_mp return value>)
Cette fonction d'aide prend la valeur renvoyée par un appel à la fonction " dbl_mp et renvoie la chaîne métaphone primaire de quatre caractères correspondante. Par exemple, " pri_mp(781598358) renvoie la clé primaire AXNK.
Métaphore secondaire
<varchar(4) value> = sec_mp(<int4 dbl_mp return value>)
Cette fonction d'aide prend la valeur renvoyée par un appel à la fonction " dbl_mp et renvoie la chaîne métaphone secondaire de quatre caractères correspondante. Par exemple, " sec_mp(781598358) renvoie la clé secondaire FXNK.
Métaphones de score
<varchar(4) value> = score_mp(<int4 dbl_mp value 1>, <int4 dbl_mp
value 1>, <int4 strong match value>, <int4 normal match value>,
<int4 minor match value>, <int4 no match value>)- Match le plus fort
- Clé primaire (1) = Clé primaire (2)
- Match normal
- Clé secondaire (1) = Clé primaire (2)
Clé primaire (1) = Clé secondaire (2)
- Correspondance minimale
- Touche secondaire (1) = Touche secondaire (2)
Pour les quatre arguments de valeur de correspondance, vous pouvez spécifier des valeurs telles que 1, 2, 3 et 4 (pour la correspondance la plus forte, normale, minimale ou aucune correspondance). Vous pouvez également utiliser des valeurs pondérées telles que 100, 50, 25 et 0 afin d'obtenir plus de points pour de meilleurs résultats.
score_mp(781598358,781596310,1,2,3,4)
La fonction renvoie la valeur 1, qui indique la correspondance la plus forte.
score_mp(781598358,1050031766,100,50,25,0)
La fonction renvoie la valeur 50, ce qui indique une correspondance normale.