IWordFormsProvider

IWordFormsProvider interface

Definisce l’interfaccia di un fornitore di moduli di parole.

public interface IWordFormsProvider

Metodi

Nome Descrizione
GetWordForms(string) Ottiene le forme delle parole per la parola specificata. L’array risultante non contiene la parola originale.

Osservazioni

Saperne di più

Esempi

L’esempio seguente mostra come implementare un provider di moduli di parole personalizzato.

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

        // Supponiamo che la parola inserita sia al plurale, quindi aggiungiamo il singolare
        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));
        }

        // Quindi supponiamo che la parola di input sia al singolare, aggiungiamo il plurale
        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");
        // Tutte le regole sono implementate nella classe EnglishWordFormsProvider

        return result.ToArray();
    }
}

Il prossimo esempio mostra come impostare un fornitore di moduli di parole personalizzato per l’utilizzo.

string indexFolder = @"c:\MyIndex\";
string documentsFolder = @"c:\MyDocuments\";
  
// Creazione di un indice nella cartella specificata
Index index = new Index(indexFolder);
  
// Indicizzazione dei documenti dalla cartella specificata
index.Add(documentsFolder);
 
// Impostazione dell'istanza del provider di moduli di parole personalizzati
index.Dictionaries.WordFormsProvider = new SimpleWordFormsProvider();
 
// Creazione di un'istanza delle opzioni di ricerca
SearchOptions options = new SearchOptions();
options.UseWordFormsSearch = true; // Abilitazione della ricerca di forme di parole
  
// Ricerca nell'indice
SearchResult result = index.Search("relative", options);
  
// Si possono trovare le seguenti parole:
// parente
// parentes

Guarda anche