package tv.dyndns.kishibe.qmaclone.server.relevance; import java.io.Reader; import org.apache.lucene.analysis.Analyzer; import com.google.common.base.Preconditions; import com.google.inject.Inject; public class ViterbiAnalyzer extends Analyzer { public interface Factory { ViterbiAnalyzer create(); } private final ViterbiTokenizer.Factory viterbiTokenizerFactory; private Reader reader; @Inject public ViterbiAnalyzer(ViterbiTokenizer.Factory viterbiTokenizerFactory) { this.viterbiTokenizerFactory = Preconditions.checkNotNull(viterbiTokenizerFactory); } @Override protected Reader initReader(String fieldName, Reader reader) { return this.reader = ReaderUtil.wrapWithNormalizer(reader); } @Override protected TokenStreamComponents createComponents(String fieldName) { return new TokenStreamComponents(viterbiTokenizerFactory.create(reader)); } }