JSF ベースの CMS 製品に高度な検索機能を追加しています
検索条件 :
ユーザーが Assets というキーワードで検索すると、Assets と同様に Assets を含むレコードを取得できるはずです。
Lucene と Solr が全文検索を実行する最良の方法であることがわかりました。そこから Apache Lucene Search を実装しました。これは、通常のクエリ結果よりも高速に動作しますが、検索基準を解決しません。
この基準で私を助ける他の Java ライブラリはありますか?
PorterStemmerは、Lucene でこの種のステミングをサポートするのに適しています。特に、PorterStemFilterをアナライザーに組み込むのが典型的なアプローチです。リンクされたドキュメントにリストされている簡単な例がありますが、PorterStemFilter次のようになります (この場合は StandardAnalyzer に基づく):
class MyStemmerAnalyzer extends Analyzer {
@override
public TokenStream tokenStream(String fieldName, Reader reader) {
TokenStream stream = new StandardTokenizer(reader);
stream = new StandardFilter(stream);
stream = new LowerCaseFilter(stream);
stream = new PorterStemFilter(stream);
stream = new StopFilter(stream, StopAnalyzer.ENGLISH_STOP_WORDS_SET);
return stream;
}
}