2016-08-24 5 views
0

私は以下の4つのテキストを含む4つの文書を持っています。Stemming Search SnowballPorterFilterFactoryを使って検索結果が少なくなると思われます

  • xxxはxxxに
  • xxxは今、私はSnowballPorterFilterFactoryを使用して "を行う" テキストによる検索を行うXXX XXX

をやっ

  • XXXをXXX
  • XXXをやったんかフィルタを使用し、上記の4つのドキュメントをすべて検索します。しかし、次の文書だけが検索されます。

    • はXXX XXX

    をやっ

  • xxxのxxxにやるしかし、私は、 "リファクタリング" テキスト "リファクタリング"、 "リファクタリングを含むすべての文書をテキストによる検索をしようとすると、 「」、「リファクタリング」または「リファクタリング」が検索される。

    なぜテキストによる検索は「を行う」「を行い」と「をした」を含むドキュメントを返すことができないのですか? 「do」は多少特殊で、SnowballPorterFilterFactoryフィルタを使用しないでください。

    ありがとうございました。

  • 答えて

    1

    私はそれほど驚きません。LuceneのSnowballFilterで提供されているストップワードリストにdoのすべての形式がストップワードとして宣言されているので、おそらくこのケースは気にしませんでした。

    したがって、その意図とほぼ一致しています。

    次のいずれかを行うことができます。 *提供されたenglish_stop.txtでStopFilterFactoryを使用します(使用する形式については、ファイルの先頭にあるコメントを参照してください)。 do/doing/didという用語だけで検索することはできません(しかし、それはそれ自体がユースケースだとは思わない)が、より大きな検索の一部であれば無視され、問題を解決します。 *は、SynonymFilterFactoryと同義語としてそれらを宣言します。

    ステミングの素晴らしい世界へようこそ。本当に簡単なテーマではありません。

    +0

    説明と解決策をありがとう。私は後でそれらを試してみます。歓迎のおかげで、^ _ ^。 –

    関連する問題