Funciones de coincidencia fonética
El lenguaje SQL Netezza Performance Server admite dos funciones de correspondencia fonética que puede utilizar para codificar nombres en representaciones fonéticas mediante los algoritmos SoundEx NYSIIS o Double Metaphone.
Codificando nombres fonéticamente, puede hacer coincidir nombres basados en su pronunciación y reducir las pérdidas que pueden resultar de las variaciones ortográficas. Las funciones de coincidencia fonética no son comparaciones que distinguen entre mayúsculas y minúsculas, las representaciones fonéticas son las mismas para las dos series que tienen la misma ortografía pero diferente letra en mayúscula o minúscula. Estas funciones dan soporte a tipos de datos VARCHAR y CHAR y específicamente al subconjunto ASCII de codificación Latin9 únicamente. Las funciones ignoran cualquier carácter fuera del subconjunto ASCII.
SoundEx NYSIIS
<varchar(6) value> = nysiis(<str_expr>)Soundex es un algoritmo fonético conocido para indexar nombres mediante el sonido cuando se pronuncian en inglés. Esta función convierte una serie en su representación Soundex utilizando la variación de Soundex New York State Identification and Intelligence
System (NYSIIS). El valor de retorno es una serie de hasta seis caracteres que identifica la pronunciación de la serie de entrada. Por ejemplo, la función nysiis('Washington') devuelve la serie ‘wasang’, mientras que la función nysiis('brown') devuelve el valor ‘bran’.
Double Metaphone
<int4 value> = dbl_mp(<str_expr>)Double Metaphone es otro algoritmo fonético para indexar series por su pronunciación. Similar a Soundex, utiliza un conjunto de reglas diferente para el inglés y la pronunciación alternativa. La función devuelve dos codificaciones de serie de 4 caracteres, una clave primaria y una clave secundaria (o alternativa), para la pronunciación de la serie de entrada. Las palabras que suenan parecido comparten claves, aunque pueden tener una ortografía y longitud variable. Por ejemplo, las claves primaria y secundaria de Double Metaphone para el nombre ‘washington’ son 'AXNK' y 'FXNK'.
Para mejorar el rendimiento, la función " dbl_mp " asigna las claves de 4 caracteres a números de 16 bits y devuelve un valor compuesto de 32 bits (Netezza Performance Server tipo " int4) que contiene las claves primaria y secundaria de 16 bits. Así, la función dbl_mp('washington') devuelve el valor 781598358.
Hay tres funciones ayudante (pri_mp, sec_mp y score_mp) que puede utilizar para extraer las claves primaria y secundaria como series del valor de retorno y para ejecutar comparaciones clave para puntuar la relevancia.
Primary Metaphone
<varchar(4) value> = pri_mp(<int4 dbl_mp return value>)
Esta función ayudante toma el valor que de devuelve de una llamada a la función dbl_mp y devuelve la serie
Primary Metaphone de cuatro caracteres correspondiente. Por ejemplo, pri_mp(781598358) devuelve la clave primaria AXNK.
Secondary Metaphone
<varchar(4) value> = sec_mp(<int4 dbl_mp return value>)
Est función ayudante toma el valor de se devuelve de una llamada a la función dbl_mp y devuelve la serie
Secondary Metaphone de cuatro caracteres correspondiente. Por ejemplo, sec_mp(781598358) devuelve la clave secundaria FXNK.
Score Metaphones
<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>)- Coincidencia más sólida
- Clave primaria (1) = Clave primaria (2)
- Coincidencia normal
- Clave secundaria (1) = Clave primaria (2)
Clave primaria (1) = Clave secundaria (2)
- Coincidencia mínima
- Clave secundaria (1) = Clave secundaria (2)
Para los cuatro argumentos de valor de coincidencia, puede especificar valores como 1, 2, 3 y 4 (para coincidencia muy sólida, normal, mínima o no coincidencia). Puede utilizar valores de peso como 100, 50, 25 y 0 para devolver más puntos para obtener mejores resultados de coincidencia.
score_mp(781598358,781596310,1,2,3,4)
La función devuelve el valor 1, que indica una coincidencia muy sólida.
score_mp(781598358,1050031766,100,50,25,0)
La función devuelve el valor 50, que indica una coincidencia normal.