Phonetische Abgleichfunktionen
Die SQL-Sprache des Netezza Performance Server unterstützt zwei phonetische Matching-Funktionen, mit denen Sie Namen in phonetische Darstellungen kodieren können, indem Sie die Algorithmen SoundEx NYSIIS oder Double Metaphone verwenden.
Durch die phonetische Codierung von Namen können Sie Namen abgleichen, die auf ihrer Aussprache basieren, und fehlende Übereinstimmungen aufgrund von Rechtschreibvarianten verringern. Die phonetischen Abgleichfunktionen berücksichtigen die Groß-/Kleinschreibung nicht; die phonetischen Darstellungen sind für zwei Zeichenfolgen gleich, die dieselbe Schreibweise, aber unterschiedliche Groß-/Kleinschreibung haben. Diese Funktionen unterstützen nur die VARCHAR- und CHAR-Datentypen und insbesondere das ASCII-Subset der Latin9-Codierung. Die Funktionen ignorieren sämtliche Zeichen außerhalb des ASCII-Subsets.
SoundEx NYSIIS
<varchar(6) value> = nysiis(<str_expr>)Soundex ist ein anerkannter phonetischer Algorithmus zur Indexierung von Namen nach ihrem Klang in der englischen Sprache. Diese Funktion konvertiert eine Zeichenfolge mithilfe der NYSIIS-Variante (NYSIIS - New York State Identification and Intelligence
System) von Soundex in ihre Soundex-Darstellung. Der Rückgabewert ist eine Zeichenfolge von maximal sechs Zeichen, die die Aussprache der Eingabezeichenfolge angibt. Beispielsweise gibt die Funktion nysiis('Washington') die Zeichenfolge 'wasang' zurück, während die Funktion nysiis('brown') den Wert 'bran' zurückgibt.
Double Metaphone
<int4 value> = dbl_mp(<str_expr>)Double Metaphone ist ein weiterer phonetischer Algorithmus für die Indexierung von Zeichenfolgen nach ihrer Aussprache. Dieser Algorithmus ähnelt Soundex, verwendet jedoch einen anderen Regelsatz für Englisch und alternative Aussprache. Die Funktion gibt zwei 4 Zeichen lange Zeichenfolgecodierungen, einen Primärschlüssel und einen Sekundärschlüssel (oder alternativen Schlüssel) für die Aussprache der Eingabezeichenfolge zurück. Ähnlich lautende Wörter nutzen Schlüssel gemeinsam, können jedoch eine variable Länge und Schreibweise haben. Beispielsweise sind die Primär- und Sekundärschlüssel von Double Metaphone für den Namen 'washington' 'AXNK' und 'FXNK'.
Um die Leistung zu verbessern, ordnet die Funktion " dbl_mp die 4-stelligen Schlüssel auf 16-Bit-Zahlen zu und gibt einen zusammengesetzten 32-Bit-WertNetezza Performance Server Typ int4) zurück, der sowohl die 16-Bit-Primär- als auch die Sekundärschlüssel enthält. Daher gibt die dbl_mp('washington')-Funktion den Wert 781598358 zurück.
Es gibt drei Helper-Funktionen (pri_mp, sec_mp und score_mp), mit denen Sie die Primär- und Sekundärschlüssel als Zeichenfolgen aus dem Rückgabewert extrahieren und Schlüsselvergleiche hinsichtlich Scoring-Relevanz ausführen können.
Primary Metaphone
<varchar(4) value> = pri_mp(<int4 dbl_mp return value>)
Diese Helper-Funktion verarbeitet den durch einen Aufruf der dbl_mp-Funktion zurückgegebenen Wert und gibt die entsprechende vier Zeichen lange Primary Metaphone-Zeichenfolge zurück. Beispielsweise gibt pri_mp(781598358) den Primärschlüssel AXNK zurück.
Secondary Metaphone
<varchar(4) value> = sec_mp(<int4 dbl_mp return value>)
Diese Helper-Funktion verarbeitet den durch einen Aufruf der dbl_mp-Funktion zurückgegebenen Wert und gibt die entsprechende vier Zeichen lange Secondary Metaphone-Zeichenfolge zurück. Beispielsweise gibt sec_mp(781598358) den Sekundärschlüssel FXNK zurück.
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>)- Stärkste Übereinstimmung
- Primärschlüssel (1) = Primärschlüssel (2)
- Normale Übereinstimmung
- Sekundärschlüssel (1) = Primärschlüssel (2)
Primärschlüssel (1) = Sekundärschlüssel (2)
- Minimale Übereinstimmung
- Sekundärschlüssel (1) = Sekundärschlüssel (2)
Für die vier Abgleichwertargumente können Sie Werte wie 1, 2, 3 und 4 (für stärkste, normale, minimale oder keine Übereinstimmung) angeben. Sie können auch gewichtete Werte wie 100, 50, 25 und 0 verwenden, um weitere Punkte für bessere Abgleichergebnisse zurückzugeben.
score_mp(781598358,781596310,1,2,3,4)
Die Funktion gibt den Wert 1 zurück, der die stärkste Übereinstimmung angibt.
score_mp(781598358,1050031766,100,50,25,0)
Die Funktion gibt den Wert 50 zurück, der eine normale Übereinstimmung angibt.