0

lucene の tokenfilters の順序について質問があります。たとえば、次のフィルターが必要な場合、lucene がこれらのフィルターを使用する順序は何ですか?

1- LowerCaseFilter 猫 => 猫

2- 猫のトリムフィルター!=>猫

3-猫のStopFilter =>猫

4-LengthFilter

5-ステマーフィルター

6- シノニムフィルター

このシーケンスを説明するドキュメントは見つかりませんでした。

4

1 に答える 1

0

フィルターの順序は、必要に応じて異なります。しかし、あなたの注文は合理的なようです。

注意してください、私はTrimFilterあなたが指定したことをするとは思わない. TrimFilter句読点ではなく、トークンから空白を削除します。ほとんどのトークナイザーは、このフィルターを不要にします。

TrimFilter と LowerCaseFilter は一般に早い段階で使用されるため、単語の内容を操作するフィルターは大文字と小文字の区別や空白を処理する必要がありません。

StopFilter と LengthFilter は同様に機能します。通常、ステミングの前にこれらを使用します。通常、StopFilter によって削除される単語は非常に原子的であるため、Stemmer の前に単語を適用することは理にかなっています。ステマーの後にこれらのフィルターを適用すると、意図していなかった意味のある語幹が失われる可能性があります。StopFilter をステミングされた単語で動作さたい場合は、もちろん Stemmer の後に来る必要があります。

SynonymFilter が Stemmer の後に来るかどうかは、ニーズによって異なります。通常、Stemmer に続く SynonymFilter の方が便利ですが、語幹形式を使用してシノニムを定義する必要があります。

于 2013-06-21T17:49:07.460 に答える