IWordFormsProvider
コンテンツ
[
隠れる
]
IWordFormsProvider interface
Word フォーム プロバイダーのインターフェイスを定義します。
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