Lucene/Solr 4.9.0 지원
Issue #1
resolved
Lucene/Solr 4.9.0에서 Tokenizer 쪽에서 변경점이 있는 듯... 현재 알게된 것
- Java 1.7 이상을 사용해야 함
- maven 3.x 를 사용해야 함
- org.apache.lucene.util.AttributeSource.AttributeFactory 패키지 위치가 변경됨 -> org.apache.lucene.util.AttributeFactory
위의 것 적용하여 테스트 했더니 아래와 같은 에러 발생
#!
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:111)
at java.io.Reader.read(Reader.java:140)
at org.bitbucket.eunjeon.mecab_ko_lucene_analyzer.MeCabKoTokenizer.getDocument(MeCabKoTokenizer.java:185)
at org.bitbucket.eunjeon.mecab_ko_lucene_analyzer.MeCabKoTokenizer.incrementToken(MeCabKoTokenizer.java:126)
... 생략
일단 MeCabTokenizer#getDocument()를 아래와 같이 바꿨더니 테스트 통과. 자세한 원인을 몰라서 더 알아볼 필요있음. 혹시 알게되면 댓글 달아주세요.
public final class MeCabKoTokenizer extends Tokenizer {
...
private String getDocument() throws IOException {
this.reset(); // <-- 추가된 부분
StringBuffer document = new StringBuffer();
char[] tmp = new char[1024];
int len;
while ((len = input.read(tmp)) != -1) {
document.append(new String(tmp, 0, len));
}
return document.toString().toLowerCase();
}
...
}
Comments (3)
-
reporter -
reporter - 3325f53 - Solr 4.9.0, ElasticSearch 1.3.0 정상 동작 테스트 완료
- MeCabKoTokenizerTest 코드 정리 필요
-
reporter - changed status to resolved
- Log in to comment
3578e39로 커밋. 리뷰 및 테스트 필요