2009-05-08 3 views
3

LuceneのStandardAnalyzerは、索引付けするときに文字列/頭字語からドットを削除します。 Luceneにドットを保持させたいので、WhitespaceAnalyzerクラスを使用しています。WhitespaceAnalyzerでストップワードを使用する

私はStandardAnalyzerに私のストップワードのリストを与えることができます...しかし、どのようにWhitespaceAnalyzerにそれを与えるのですか?

読んでいただきありがとうございます。

答えて

6

WhiteSpaceAnalyzerを拡張して独自のアナライザーを作成し、tokenStreamメソッドを次のようにオーバーライドします。

public TokenStream tokenStream(String fieldName, Reader reader) { 
    TokenStream result = super.tokenStream(fieldName, reader); 
    result = new StopFilter(result, stopSet); 
    return result; 
} 

ここstopSetはあなたがストップワードのリストを受け入れ、あなたのアナライザにコンストラクタを追加することによって得ることができるストップワードの設定、です。

TokenStreamを再利用する予定の場合、同様の方法でreusableTokenStream()メソッドをオーバーライドすることもできます。

+0

あなたは私の答えとコメントで略奪してください: http://stackoverflow.com/questions/899542/problem-using-same-instance-of-indexsearcher-for-multiple-requests/1014501#1014501 –

+0

@Shashikant Kore - 質問の入力 - http://stackoverflow.com/questions/14554850/solrj-query-get-the-most-relevant-record-first – JHS

関連する問題