IWordFormsProvider

IWordFormsProvider interface

Definiert die Schnittstelle eines Wortformanbieters.

public interface IWordFormsProvider

Methoden

Name Beschreibung
GetWordForms(string) Ruft die Wortformen für das angegebene Wort ab. Das resultierende Array enthält nicht das ursprüngliche Wort.

Bemerkungen

Erfahren Sie mehr

Beispiele

Das folgende Beispiel zeigt, wie ein benutzerdefinierter Wortformanbieter implementiert wird.

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

        // Angenommen, das eingegebene Wort steht im Plural, dann fügen wir den Singular hinzu
        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));
        }

        // Dann nehmen wir an, dass das Eingabewort im Singular steht, wir fügen den Plural hinzu
        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 Regeln sind in der Klasse EnglishWordFormsProvider implementiert

        return result.ToArray();
    }
}

Das nächste Beispiel zeigt, wie Sie einen benutzerdefinierten Wortformanbieter für die Verwendung festlegen.

string indexFolder = @"c:\MyIndex\";
string documentsFolder = @"c:\MyDocuments\";
  
// Index im angegebenen Ordner erstellen
Index index = new Index(indexFolder);
  
// Indizierung von Dokumenten aus dem angegebenen Ordner
index.Add(documentsFolder);
 
// Festlegen der Instanz des Anbieters für benutzerdefinierte Wortformen
index.Dictionaries.WordFormsProvider = new SimpleWordFormsProvider();
 
// Erstellen einer Suchoptionsinstanz
SearchOptions options = new SearchOptions();
options.UseWordFormsSearch = true; // Suche nach Wortformen aktivieren
  
// Suche im Index
SearchResult result = index.Search("relative", options);
  
// Die folgenden Wörter können gefunden werden:
// relativ
// relativs

Siehe auch