IWordFormsProvider
public interface IWordFormsProvider
Defines interface of a word forms provider.
Learn more
The following example demonstrates how to implement a custom word forms provider.
 public class SimpleWordFormsProvider implements IWordFormsProvider {
     public final String[] getWordForms(String word) {
         ArrayList result = new ArrayList();
         // Assume that the input word is in the plural, then we add the singular
         if (word.length() > 2 &&
             word.toLowerCase().endsWith("es")) {
             result.add(word.substring(0, word.length() - 2));
         }
         if (word.length() > 1 &&
             word.toLowerCase().endsWith("s")) {
             result.add(word.substring(0, word.length() - 1));
         }
         // Then assume that the input word is in the singular, we add the plural
         if (word.length() > 1 &&
             word.toLowerCase().endsWith("y")) {
             result.add(word.substring(0, word.length() - 1).concat("is"));
         }
         result.add(word.concat("s"));
         result.add(word.concat("es"));
         // All rules are implemented in the EnglishWordFormsProvider class
         return result.toArray(new String[0]);
     }
 }
 
The next example demonstrates how to set a custom word forms provider for using.
 String indexFolder = "c:\\MyIndex\\";
 String documentsFolder = "c:\\MyDocuments\\";
 // Creating an index in the specified folder
 Index index = new Index(indexFolder);
 // Indexing documents from the specified folder
 index.add(documentsFolder);
 // Setting the custom word forms provider instance
 index.getDictionaries().setWordFormsProvider(new SimpleWordFormsProvider());
 // Creating a search options instance
 SearchOptions options = new SearchOptions();
 options.setUseWordFormsSearch(true); // Enabling search for word forms
 // Searching in the index
 SearchResult result = index.search("relative", options);
 // The following words can be found:
 // relative
 // relatives
 
Methods
| Method | Description | 
|---|---|
| getWordForms(String word) | Gets the word forms for the specified word. | 
getWordForms(String word)
public abstract String[] getWordForms(String word)
Gets the word forms for the specified word. The resulting array does not contain the original word.
Parameters:
| Parameter | Type | Description | 
|---|---|---|
| word | java.lang.String | The word to suggest the word forms. | 
Returns: java.lang.String[] - The word forms for the specified word or empty array if the IWordFormsProvider does not provide word forms for the specified word.