Lucene

고감자 on 12월 16th, 2010

요즘 루씬 코드 리딩을 하고 있다. 루씬 core 패키지는 예전에 한번 분석 해본 경험이 있어서 이번엔 contrib 패키지를 중점적으로 살펴보고 있다. 그중에서도 spellcheck 모듈은 가장 최근에 성능좋은 라이브러리로 구현한 경험이 있어서 관심이 갔다.  이 패키지 내에서는 Jaro Winkler Distance 라는 짧은 이름에서 사용 가능한 string 비교 클래스가 구현이 되어 있었으며 n-gram 기반의 string 비교 클래스도 [...]

Continue reading about Lucene spellcheck package

고감자 on 11월 26th, 2008

추천엔진이라는게 아시는분들은 잘 아시겠지만 자신이 구매한 물품을 기반으로 사용자 프로파일을 만들어서 그 프로파일과 비슷한 유저를 찾아 그 사람이 제일 많이 선호한 물품을 추천하는 알고리즘을 쓴다.(물론 상품 기반으로 계산할 수도 있다.)물론 이 말은 굉장히 피상적인 내용이고, 실제 서비스에 적용하기 위해서 이런 작업은 검색 전에 인덱싱을 하는것처럼 pre processing 작업을 거쳐서 정제 후 나올 수 있는 비동기적인 [...]

Continue reading about CI in Action 12장 추천엔진에 대해서

고감자 on 12월 15th, 2006

현재 다니는 회사 입사 초기에 만들어 발표했던 발표자료이다. 입사하기 전에 인덱스 파일 포멧에 관심이 많이 있어 블로그에 Lucene 색인구조에 대해서 강좌를 썼었고, 그것을 기반으로 간단하게 발표자료를 만들었다. 이번에 Lucene에 가봤더니 벌써 Lucene Index File Format 2.1 버전이 올라와 있더군.버전이 올라간 기념으로 2.0기반으로 만들었던 색인 파일 발표자료를 공개한다. 잠깐 봤는데 compound 파일의 포멧과 lock 파일에 대한것이 [...]

Continue reading about Lucene index file format 발표 자료

고감자 on 12월 9th, 2006

저번에 검개그 오픈소스 검색엔진 프로젝트 차원에서 형태소 분석기를 만들어 보자는 의견이 있었고, 오늘 그에 대한 첫 비공식 모임을 가졌다. 개발할 시간이 없어서 이래저래 많은 의욕적인 분들과 접촉을 하면서 함께 코웍하기를 그동안 그렇게나 원했지만 기회가 나지 않았다.그동안 안철수 연구소에서 일하시면서 함께 개발하고자 하는 의욕을 보여주신 분도 있었고,(이분은 학교를 외국에서 다닌다며 출국해버렸다. ㅜㅜ) 금전적(ㅜㅜ)으로 도움까지 주시려 하셨던 [...]

Continue reading about Lucene KoreanAnalyzer : 다시 시작하다.

김형준님의 강의를 바탕으로 논문을 보고 있는데, 강의 들으면서 낯설지 않은 부분이 Tablet Serving과 Compaction 부분이였다. 한번 정리해 본다. 논문에 나온 그림 새로운 데이터가 들어올때. BigTable의 DB 무결성을 유지하기 위해서 메모리기반의 버퍼를 유지하고 또한 그 버퍼의 Copy를 이용해서 계속 서비스를 유지하게 하면서 minor compaction을 수행한다. 물론 minor compaction이 완료가 되면 메모리를 지운다. 그 강의에는 나오지 않았지만, [...]

Continue reading about BigTable의 Tablet Serving과 Compaction 그리고 Lucene의 Incremental Indexing