본문 바로가기

aboutlucene

[aboutLucene] FilteringTokenFilter FilteringTokenFilter에 대한 포스트입니다. 4.0부터 처음 나온 필터 클래스는 아닙니다만.. (3.1 부터 나온 것 같습니다.) 제가 원래 Token의 제거를 (불용어 같은 케이스) TokenFilter를 상속받아서 직접 구현해서 쓰고 있었는데 이번에 4.0으로 전환하려고보니 이 filter 클래스가 눈에 띄워서 보게되었습니다. TokenStream이 가지고있는 Attribute의 구현 클래스중에 PositionIncrementAttribute가 있습니다. 이것은 Token화되어 나온 키워드의 위치 증가를 보여주는 속성인데요.. 예를 들어서 "자바 개발자 장용석" 이라는 문장을 공백을 기준으로 키워드 추출한다고 했을 때 기본적인 PositionIncrementAttibute의 값은 자바 .. 더보기
[about Lucene] 예제소스를 github.com에 올려놓았습니다. 이래저래 공부도 해볼 겸 aboutLucene의 예제 소스를 https://github.com/need4spd/aboutLucene 으로 repository를 변경하였습니다. 더보기
[about Lucene] 루씬으로 검색엔진 개발하기 - Analyzer (4) - 앞선 포스트에서는 Analyzer의 기본이 되는 Tokenizer를 구현하여 보았습니다. 다시 한번 말씀드리면 Analyzer는 Reader - Tokenizer - TokenFilter - TokenFilter - TokenFilter... 이런식으로 1개의 Tokenizer와 N개의 TokenFilter로 구성이 되어있습니다. 여기서는 그 TokenFilter 중 하나를 구현해보려 합니다. 앞에서 여러개의 Filter를 말씀드렸었습니다. 기본적으로 "어미사전"으로부터 어미를 제거하는 StemFilter "동의어 사전"으로부터 동의어를 추출하는 SynonymFilter "명사사전"으로부터 명사를 추출하는 NounExtractFilter "불용어사전"으로부터 불용어 처리를 하는 StopFilter "복합.. 더보기
[about Lucene] 루씬으로 검색엔진 개발하기 - Analyzer (2) - 그러면 이제 루씬에서의 Analyzer에 대해서 살펴보도록 하겠습니다. 이제부터 정말 작성하기가 조심스러워지네요... 저도 루씬을 잘 이해하고 있는 상태는 아니라서.... ㅎㅎ 더군다나 제가 공부하며 만들었던 루씬 버전이 2.4 정도 버전인데 현재 3.3 버전은 기본적인 개념은 비슷하겠지만 내부적은 구현 방식은 완전히 바뀌었더라구요... 앞으로 내부적인 루씬 소스에대한 설명보다는 주로 사용법/커스터마이즈 방법을 소개해드리게 될 것 같습니다. 우선 Analyzer가 어떻게 사용되는지 보도록 하겠습니다. AnalyzerUsageSampleTest.java 우선 분석 할 문장을 StringReader로 생성하고, 이 문장을 분석 할 Analyzer를 생성합니다. 여기서는 WhitespaceAnalyzer를 이.. 더보기