나는 Lucene 6.2.0을 사용 중이며 검색을 위해 맞춤 분석기를 구현하려고합니다. 내가 그것을 이렇게 나에게 불법 상태 예외를주고있다 인덱스를 검색하고 경우에 지금 내 분석기 클래스lucene에서 Synonymap을 사용하는 방법 6.2.0
public static class myAnalyzer extends Analyzer
{
@Override
protected TokenStreamComponents createComponents(String reader) {
final StandardTokenizer tok = new StandardTokenizer();
TokenStream result = new StandardFilter((TokenStream) tok);
result = new LowerCaseFilter(result);
return new TokenStreamComponents(tok, result);
}
}
입니다.
Exception in thread "main" java.lang.IllegalStateException: TokenStream contract violation: reset()/close() call missing, reset() called multiple times, or subclass does not call super.reset(). Please see Javadocs of TokenStream class for more information about the correct consuming workflow.
at org.apache.lucene.analysis.Tokenizer$1.read(Tokenizer.java:109)
i tried using result.close(); but it didnt solved the problem..
so what am i doing wrong ? am I using two instances of the same analyzer.
모든 코드 예제는 매우 유용 할 것입니다.
무엇이 문제입니까? SynonymMap 권한을 SynonymFilter의 생성자에 전달합니다. – femtoRgon
감사합니다. femtoRgon –