public static SqlString LongPhonetic(SqlInt16 PhoneticType, SqlString InputString) { BasePhonetics PhoneticObject; string _inputString; if (InputString.IsNull || InputString.Value.Trim() == String.Empty) { _inputString = " "; } else { _inputString = InputString.Value; } switch (PhoneticType.Value) { case 0: PhoneticObject = new Soundex(_inputString); break; case 1: PhoneticObject = new RefinedSoundex(_inputString); break; case 2: PhoneticObject = new NYSIIS(_inputString); break; case 3: PhoneticObject = new DaitchMokotoff(_inputString); break; case 4: PhoneticObject = new Metaphone(_inputString); break; case 6: PhoneticObject = new ColognePhonetic(_inputString); break; default: PhoneticObject = new Soundex(_inputString); PhoneticType = 0; break; } PhoneticObject.Iterate(); return(PhoneticObject.ReadOutput()); }
private void StringMatchKeyTest(string[] testCases) { Debug.WriteLine("EditexKey"); StringPhoneticKeyBuilder keyBuilder = new EditexKey(); foreach (var name in testCases) { string key = keyBuilder.BuildKey(name); Debug.WriteLine("\t{0} for {1}", key, name); } Debug.WriteLine("DaitchMokotoff"); StringPhoneticKeyBuilder keyBuilder2 = new DaitchMokotoff(); foreach (var name in testCases) { string key = keyBuilder2.BuildKey(name); Debug.WriteLine("\t{0} for {1}", key, name); } Debug.WriteLine("Phonix"); StringPhoneticKeyBuilder keyBuilder3 = new Phonix(); foreach (var name in testCases) { string key = keyBuilder3.BuildKey(name); Debug.WriteLine("\t{0} for {1}", key, name); } Debug.WriteLine("SoundEx"); StringPhoneticKeyBuilder keyBuilder4 = new SoundEx(); foreach (var name in testCases) { string key = keyBuilder4.BuildKey(name); Debug.WriteLine("\t{0} for {1}", key, name); } Debug.WriteLine("SimpleTextKey"); StringPhoneticKeyBuilder keyBuilder5 = new SimpleTextKey(); foreach (var name in testCases) { string key = keyBuilder5.BuildKey(name); Debug.WriteLine("\t{0} for {1}", key, name); } Debug.WriteLine("Metaphone"); StringPhoneticKeyBuilder keyBuilder6 = new Metaphone(); foreach (var name in testCases) { string key = keyBuilder6.BuildKey(name); Debug.WriteLine("\t{0} for {1}", key, name); } Debug.WriteLine("DoubleMetaphone"); StringPhoneticKeyBuilder keyBuilder7 = new DoubleMetaphone(); foreach (var name in testCases) { string key = keyBuilder7.BuildKey(name); Debug.WriteLine("\t{0} for {1}", key, name); } }