These functions provide a means to implement Double Metaphone or Metaphone 3 phonetic encoding or fuzzy-match algorithms which return a primary code, a secondary code, or both for a given string.
STD.Metaphone.Primary( source )
STD.Metaphone3.Primary( source )
| source | The string to process. |
| Return: | Primary returns a STRING value. |
The Primary function returns a textual representation of the source data, similar to a Soundex code. This function returns the first return value from the Double Metaphone algorithm.
The Metaphone3.Primary function uses the newer Metaphone 3 libraries which improve phonetic encoding of English words, non-English words familiar to Americans, and first and last names commonly found in the United States (Enterprise Edition only).
Example:
r := RECORD
STRING source;
STRING M1;
STRING M2;
STRING Mboth;
END;
r XF(ProgGuide.Person.File L) := TRANSFORM
SELF.source := L.LastName;
SELF.M1 := STD.Metaphone.Primary( L.LastName );
SELF.M2 := STD.Metaphone.Secondary( L.LastName );
SELF.Mboth := STD.Metaphone.Double( L.LastName );
END;
// Example using Metaphone 3 (available in Enterprise Edition)
/*
r XF(ProgGuide.Person.File L) := TRANSFORM
SELF.source := L.LastName;
SELF.M1 := STD.Metaphone3.Primary( L.LastName );
SELF.M2 := STD.Metaphone3.Secondary( L.LastName );
SELF.Mboth := STD.Metaphone3.Double( L.LastName );
END;
*/
ds := PROJECT(ProgGuide.Person.File,XF(LEFT));
COUNT(ds);
COUNT(ds(M1 <> M2));
OUTPUT(ds);
OUTPUT(ds(M1 <> M2));