1

文字列のセット (Lucene の各ドキュメントは 1 つの単語) を格納し、入力単語 W を指定すると、単語 W に一致するだけでなく、語幹バージョンも一致するドキュメントもすべて取得したいとします。 W.

また、単語 W が入力されたとします。単語 W の語幹バージョンにも一致するドキュメントがある場合に対処したいと思います。

独自のカスタム アナライザーを作成し、PorterStemFilter を返すだけで十分でしょうか? このクラスを作成して、コード内でアナライザーとして参照するだけでよいですか?

4

1 に答える 1

2

アナライザーチェーンにステマーを持つカスタムアナライザーを作成するだけで十分です。

Lucene4.1でPorterStemFilterを使用するサンプルコードは次のとおりです。

 class MyAnalyzer extends Analyzer {
  @Override
  protected TokenStreamComponents createComponents(String fieldName, Reader reader) {
    Tokenizer source = new LowerCaseTokenizer(version, reader);
    return new TokenStreamComponents(source, new PorterStemFilter(source));
  }
}

インデックス作成にも使用されるクエリでは、同じカスタムアナライザーを使用する必要があることに注意してください。

Luceneのバージョンのサンプルコードは、対応するPorterStemFilterのドキュメントにあります。

于 2013-03-18T14:33:37.883 に答える