2

Hunspell を使用して、dictionay にいくつかのカスタム単語を追加したいと考えています。

コンストラクターで辞書からロードします。

private readonly Hunspell _hunspell;
public NhunspellHelper()
{
    _hunspell = new Hunspell(
        HttpContext.Current.Server.MapPath("~/App_Data/en_US.aff"),
        HttpContext.Current.Server.MapPath("~/App_Data/en_US.dic"));
}

この関数は辞書に新しい単語を追加します:

public void AddToDictionary(string word)
{
    _hunspell.Add(word); // or _hunspell.AddWithAffix(word, "aaa");
}

単語を辞書に追加した後、同じリクエストでこの単語を綴ると:

_hunspell.Spell(word)

を返しますtrueが、別のリクエストでこの単語を綴ると、返されますfalse

と の両方のファイルを確認.affしましたが、 の.dic後に変更されていないことがわかりました_hunspell.Add(word);。そのため、別のリクエストが送信されると、コンストラクターは元の辞書から新しい Hunspell インスタンスを作成します。

私の質問は次のとおりです。Nhunspell は新しい単語を辞書に追加し、それを物理ファイル (*.aff または *.dic) に保存しますか? それともメモリに追加するだけで、辞書ファイルには何もしませんか?

辞書に新しい単語を追加するのに何か間違ったことをしましたか?

4

1 に答える 1