私は、Apache Lucene を使用してファイルのインデックスを作成するプロジェクトに取り組んでいます。Lucene を使用してファイルのインデックスを作成することはできますが、結果を見ると、おそらくインデックス作成中にストップ ワードを削除していないために、多くの突然の単語が表示されます。
ファイルのインデックス作成中に Lucene がストップ ワードを削除する方法を提供していることを Web で読みました。どうやってやるの?
私は、Apache Lucene を使用してファイルのインデックスを作成するプロジェクトに取り組んでいます。Lucene を使用してファイルのインデックスを作成することはできますが、結果を見ると、おそらくインデックス作成中にストップ ワードを削除していないために、多くの突然の単語が表示されます。
ファイルのインデックス作成中に Lucene がストップ ワードを削除する方法を提供していることを Web で読みました。どうやってやるの?
Lucene のStandardAnalyzerには、通過したものからいくつかの典型的なストップ ワードを削除する StopFilter が含まれています。英語のストップ ワードの標準的なリストはかなり短いものです。主にいくつかの冠詞、代名詞、前置詞。
独自のストップ ワード セットを定義する場合、StandardAnalyzer にはいくつかのコンストラクタがあり、独自のストップ ワード セット、特にthisを渡すことができます。目的のストップ ワードを含むCharArraySetを作成し、それをそのコンストラクターに渡し、途中でそれを渡すだけです。
他のほとんどの典型的なアナライザーも同じ引数を受け入れるコンストラクターを持っていると思います (一見すると、アナライザーの言語アナライザーのほとんどすべてがそのパターンに従っているように見えます) 。
もちろん、インデックス作成と検索の両方に同じアナライザーを使用してください。
標準アナライザーまたはストップ アナライザーを使用する場合、"on、a、an、the" などのストップ ワードはインデックスから自動的に削除され、ストップ ワードを使用した検索は実行できません。「was、is、on」などのストップ ワードを使用して検索を実行する場合は、空白アナライザーまたは単純なアナライザーを使用する必要があります。