IWordFormsProvider

IWordFormsProvider interface

Definierar gränssnittet för en ordformsleverantör.

public interface IWordFormsProvider

Metoder

namn Beskrivning
GetWordForms(string) Hämtar ordformerna för det angivna ordet. Den resulterande arrayen innehåller inte det ursprungliga ordet.

Anmärkningar

Läs mer

Exempel

Följande exempel visar hur man implementerar en anpassad ordformsleverantör.

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

        // Antag att inmatningsordet är i plural, då lägger vi till singular
        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));
        }

        // Antag sedan att inmatningsordet är i singular, vi lägger till plural
        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");
        // Alla regler är implementerade i klassen EnglishWordFormsProvider

        return result.ToArray();
    }
}

Nästa exempel visar hur man ställer in en anpassad ordformsleverantör för användning.

string indexFolder = @"c:\MyIndex\";
string documentsFolder = @"c:\MyDocuments\";
  
// Skapar ett index i den angivna mappen
Index index = new Index(indexFolder);
  
// Indexering av dokument från den angivna mappen
index.Add(documentsFolder);
 
// Ställa in den anpassade ordformsleverantörsinstansen
index.Dictionaries.WordFormsProvider = new SimpleWordFormsProvider();
 
// Skapar en sökalternativsinstans
SearchOptions options = new SearchOptions();
options.UseWordFormsSearch = true; // Möjliggör sökning efter ordformer
  
// Söker i indexet
SearchResult result = index.Search("relative", options);
  
// Följande ord kan hittas:
// relativ
// relativs

Se även