The HomophoneDictionary class is designed to store homophones in an index. For information on searching using homophones, see the Homophone search page.
The homophone dictionary can be changed at any time, also in an index that contains documents. The dictionary keeps words in lower case without leading and trailing white space, so the methods that get homophones ignore the letter case of the specified word.
To get the number of words in the dictionary, use the Count property.
To add groups of homophones to the dictionary, use the AddRange method.
The Clear method is used to remove all homophones from the dictionary.
The GetHomophones method is used to get a list of homophones for a given word. The returned list does not contain the word itself.
The GetHomophoneGroups method is used to get all homophone groups to which a given word belongs.
To get all homophone groups from the dictionary, use the GetAllHomophoneGroups method.
To export homophones to a file, use the ExportDictionary method.
To import homophones from a file, use the ImportDictionary method. Errors of exporting and importing are reported by the ErrorOccurred event of the index instead of exceptions.
The following example demonstrates the use of methods of the homophone dictionary.
C#
stringindexFolder=@"c:\MyIndex\";// Creating or opening an index in the specified folderIndexindex=newIndex(indexFolder);// Getting homophones for the word 'braid'; the letter case of the word is ignoredstring[]homophones=index.Dictionaries.HomophoneDictionary.GetHomophones("Braid");Console.WriteLine("Homophones for 'braid':");for(inti=0;i<homophones.Length;i++){Console.WriteLine(homophones[i]);}// Getting groups of homophones to which the word 'braid' belongsstring[][]groups=index.Dictionaries.HomophoneDictionary.GetHomophoneGroups("braid");Console.WriteLine("Homophone groups for 'braid':");for(inti=0;i<groups.Length;i++){string[]group=groups[i];for(intj=0;j<group.Length;j++){Console.Write(group[j]+" ");}Console.WriteLine();}if(index.Dictionaries.HomophoneDictionary.Count>0){// Removing all homophones from the dictionaryindex.Dictionaries.HomophoneDictionary.Clear();}// Adding homophones to the dictionarystring[][]homophoneGroups=newstring[][]{newstring[]{"awe","oar","or","ore"},newstring[]{"aye","eye","i"},};index.Dictionaries.HomophoneDictionary.AddRange(homophoneGroups);// Exporting homophones to a fileindex.Dictionaries.HomophoneDictionary.ExportDictionary(@"c:\Homophones.dat");// Importing homophones from a fileindex.Dictionaries.HomophoneDictionary.ImportDictionary(@"c:\Homophones.dat");
More resources
GitHub examples
You may easily run the code from documentation articles and see the features in action in our GitHub examples: