본문 바로가기

Filter

Lucene 3.0 TokenStream과 AttributeSource. - 2 - 앞에서 AttributeSource에 Attribute들 (term, offset, position, type 등) set 해주면 그 뒤에 오는 Filter나 Tokenizer가 해당 Attribute를 사용 할 수 있다고 했습니다. 각각의 Filter와 Tokenizer는 모두 TokenStream을 상속하고 있고 이 TokenStream은 AttributeSource를 상속받고 있습니다. 이 Filter와 Tokenizer가 서로 데코레이터 패턴으로 물려있기 때문에 앞에서 set한 결과를 뒤에 따라오는 Filter와 Tokenizer가 사용 할 수 있는 것 입니다. (Java의 stream 관련 클래스들을 생각하시면 됩니다.) 소스를 보면 보통 맨 앞단에서 들어오는 String을 잘라내는 역할을 하는.. 더보기
[lucene] Analyzer와 Filter (2.4.0) 예전에 작성해 놓은 Analyzer와 Filter 포스트는 1.4.X 버젼대의 소스입니다. 예전에는 Analyzer의 형식이 public TokenStream tokenStream(String fieldName, Reader content) { return new GSKoreanSynonymFilter( new GSKoreanStopWordFilter( new GSKoreanSeperatorWordFilter( new GSKoreanSeperatorNameWordFilter( new GSKoreanTokenizer(content){} //GSKoreanTokenizer ) // GSKoreanSeperatorNameWordFilter ) //GSKoreanSeperatorWordFilter ), engi.. 더보기
[lucene] Analyzer와 Filter (lucene 1.4.X) 루씬의 Analyzer는 아래와 같은 구조로 되어있습니다. public TokenStream tokenStream(String fieldName, Reader content) { return new GSKoreanSynonymFilter( new GSKoreanStopWordFilter( new GSKoreanSeperatorWordFilter( new GSKoreanSeperatorNameWordFilter( new GSKoreanTokenizer(content){} //GSKoreanTokenizer ) // GSKoreanSeperatorNameWordFilter ) //GSKoreanSeperatorWordFilter ), engine); } TokenStream을 만들고 정규화를 시키는 Toke.. 더보기