본문 바로가기

TokenStream

Lucene 3.0 TokenStream과 AttributeSource. - 1 - 루씬이 버전업 되면서 바뀐 부분 중 하나가 이 부분인 것 같습니다. 이전에는 Tokenizer나 TokenFilter 클래스를 만들 때 TokenStream 클래스를 상속받아 만들고 이 TokenStream의 next 메서드를 사용해서 얻어지는 Token을 가지고 데코레이터 패턴으로 적용 된 Filter들이 Token을 처리하는 방식이었습니다. 예를 들어서, Analyzer의 tokenStream 메서드가 위와 같이 정의되어 있다고 하고 분석해야 할 문장이 "검색엔진 개발자" 라고 했을 때 추출 되는 Token을 얻어내기 위해서 next 메서드를 실행했었습니다. 즉, 대략 위와 같은 방식이었죠. next 메서드가 실행 되면 제일 상위의 Tokenizer에서 "검색엔진,(0,4)" 라는 Token을 만들어.. 더보기
Lucene 3.0 TokenStream. 그리고 Attribute. 예전에 만들었던 한글 명사 추출 Analyzer를 공개하려고 하다가 그 Analyzer의 core 버전이 2.4.0 base여서 이것을 최신 루씬 버전인 3.0으로 컨버팅 하려고 했는데... 바뀐게 한두가지가 아니라서.. 일단 바뀐 부분부터 공부를 해야겠다 싶었다. -_-; 제일 당황스러운 부분이... TokenStream.next(Token token) 메서드가 사라진 것이었다. -_-; 이 부분이 TokenStream.incrementToken() 메서드를 대체가 되었는데 이건 조만간 다시 포스팅 하기로 하고.. 일단, 기존에 사용되던 Token이란 클래스가 남아있기는 한데.. 대부분 Attribute 클래스에 기초한 놈들로 변경이 된 것 같다. 예전에 하나의 String에서 Analyzer로 분석 .. 더보기