IWordFormsProvider

IWordFormsProvider interface

Define la interfaz de un proveedor de formas de palabra.

public interface IWordFormsProvider

Métodos

Nombre Descripción
GetWordForms(string) Obtiene las formas de palabra para la palabra especificada. La matriz resultante no contiene la palabra original.

Observaciones

Aprende más

Ejemplos

El siguiente ejemplo muestra cómo implementar un proveedor de formularios de palabras personalizados.

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

        // Supongamos que la palabra de entrada está en plural, luego agregamos el 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));
        }

        // Entonces supongamos que la palabra de entrada está en singular, agregamos el 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");
        // Todas las reglas se implementan en la clase EnglishWordFormsProvider

        return result.ToArray();
    }
}

El siguiente ejemplo muestra cómo configurar un proveedor de formularios de palabras personalizados para usar.

string indexFolder = @"c:\MyIndex\";
string documentsFolder = @"c:\MyDocuments\";
  
// Creando un índice en la carpeta especificada
Index index = new Index(indexFolder);
  
// Indexación de documentos de la carpeta especificada
index.Add(documentsFolder);
 
// Configuración de la instancia del proveedor de formas de palabras personalizadas
index.Dictionaries.WordFormsProvider = new SimpleWordFormsProvider();
 
// Creando una instancia de opciones de búsqueda
SearchOptions options = new SearchOptions();
options.UseWordFormsSearch = true; // Habilitando la búsqueda de formas de palabras
  
// Buscando en el índice
SearchResult result = index.Search("relative", options);
  
// Se pueden encontrar las siguientes palabras:
// relativo
// relativos

Ver también