IWordFormsProvider

IWordFormsProvider interface

Definieert de interface van een provider van woordvormen.

public interface IWordFormsProvider

methoden

Naam Beschrijving
GetWordForms(string) Haalt de woordvormen op voor het opgegeven woord. De resulterende array bevat niet het oorspronkelijke woord.

Opmerkingen

Kom meer te weten

Voorbeelden

In het volgende voorbeeld ziet u hoe u een provider voor aangepaste woordvormen implementeert.

public class SimpleWordFormsProvider : IWordFormsProvider
{
    public string[] GetWordForms(string word)
    {
        List<string> result = new List<string>();

        // Stel dat het ingevoerde woord in het meervoud staat, dan voegen we het enkelvoud toe
        if (word.Length > 2 &&
            word.EndsWith("es", StringComparison.InvariantCultureIgnoreCase))
        {
            result.Add(word.Substring(0, word.Length - 2));
        }
        if (word.Length > 1 &&
            word.EndsWith("s", StringComparison.InvariantCultureIgnoreCase))
        {
            result.Add(word.Substring(0, word.Length - 1));
        }

        // Neem dan aan dat het ingevoerde woord in het enkelvoud staat, we voegen het meervoud toe
        if (word.Length > 1 &&
            word.EndsWith("y", StringComparison.InvariantCultureIgnoreCase))
        {
            result.Add(word.Substring(0, word.Length - 1) + "is");
        }
        result.Add(word + "s");
        result.Add(word + "es");
        // Alle regels zijn geïmplementeerd in de klasse EnglishWordFormsProvider

        return result.ToArray();
    }
}

Het volgende voorbeeld laat zien hoe u een aangepaste woordvormprovider instelt voor gebruik.

string indexFolder = @"c:\MyIndex\";
string documentsFolder = @"c:\MyDocuments\";
  
// Een index maken in de opgegeven map
Index index = new Index(indexFolder);
  
// Documenten uit de opgegeven map indexeren
index.Add(documentsFolder);
 
// De instantie van de provider van aangepaste woordvormen instellen
index.Dictionaries.WordFormsProvider = new SimpleWordFormsProvider();
 
// Een instantie voor zoekopties maken
SearchOptions options = new SearchOptions();
options.UseWordFormsSearch = true; // Zoeken naar woordvormen inschakelen
  
// Zoeken in de index
SearchResult result = index.Search("relative", options);
  
// De volgende woorden zijn te vinden:
// familielid
// familielids

Zie ook