IWordFormsProvider
Содержание
[
Скрывать
]
IWordFormsProvider interface
Определяет интерфейс поставщика словоформ.
public interface IWordFormsProvider
Методы
Имя | Описание |
---|---|
GetWordForms(string) | Получает словоформы для указанного слова. Результирующий массив не содержит исходного слова. |
Примечания
Узнать больше
Примеры
В следующем примере показано, как реализовать пользовательский поставщик словоформ.
public class SimpleWordFormsProvider : IWordFormsProvider
{
public string[] GetWordForms(string word)
{
List<string> result = new List<string>();
// Предположим, что входное слово во множественном числе, тогда мы добавляем единственное число
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));
}
// Тогда предположим, что входное слово в единственном числе, мы добавляем множественное число
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");
// Все правила реализованы в классе EnglishWordFormsProvider
return result.ToArray();
}
}
В следующем примере показано, как установить пользовательский поставщик словоформ для использования.
string indexFolder = @"c:\MyIndex\";
string documentsFolder = @"c:\MyDocuments\";
// Создание индекса в указанной папке
Index index = new Index(indexFolder);
// Индексация документов из указанной папки
index.Add(documentsFolder);
// Установка экземпляра провайдера пользовательских словоформ
index.Dictionaries.WordFormsProvider = new SimpleWordFormsProvider();
// Создание экземпляра параметров поиска
SearchOptions options = new SearchOptions();
options.UseWordFormsSearch = true; // Включение поиска словоформ
// Поиск в индексе
SearchResult result = index.Search("relative", options);
// Можно найти следующие слова:
// родственник
// родственникs
Смотрите также
- пространство имен GroupDocs.Search.Dictionaries
- сборка GroupDocs.Search