색인 압축 기법 정리 : Byte Align and Gamma Compression

색인 압축에는 두가지 영역이 있는데 첫번째 영역은 Term Dictionary의 영역과, 두번째 영역은 posting 영역의 압축이 있다. Term Dic의 압축은 일단 다루지는 않겠고, (이 부분의 압축 기법은 Lucene 색인 파일 구조에 잘 나타나 있다. 예를 들어 prefix를 공유하는 기법이라든지 말이다.) posting list영역의 압축 기법은 대표적으로 연속된 doc id를 기준으로 d-gap을 이용하는데, 이 d-gap을 어떤식으로 저장을 하는것이 […]

계속 읽기

Lucene index file format 발표 자료

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

계속 읽기

알고리즘 공부하기

그동안 그다지 신경쓰지 않았던 알고리즘 공부를 복습하고자 한다. 물론 기본적이 알고리즘과 여러 잡다한 알고리즘을 알고 있기는 하지만 처음부터 한번 정도 정리해야될 필요성을 많이 느끼고 있었다. 전에 conv2님과 함께 학교 와서 구입한 알고리즘 책은 이미 다 본 상태구 코딩까지 해봐서 이제 다른 책으로 넘어가야 할거 같다. Algorithms : Design Techniques and Analysys 라는 책인데 이 책은 […]

계속 읽기

Lucene KoreanAnalyzer : 다시 시작하다.

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

계속 읽기

Google may use ‘Edit Distance’ in ‘Query suggestion’?

이전 포스팅에 Edit Distance를 설명하고 Lucene의 Fuzzy Query에 대해서 설명을 했는데, 곰곰히 생각을 해보니 Google에서 Edit Distance를 “이것을 원하셨습니까?”에서 사용하지 않을까 생각을 해봤다. (주의 : 전적으로 나의 생각이고 이렇게 하고 있을수도 아니면 다른방법을 쓸수도 있다.) 우리가 단어를 잘못 입력했다는것은 대부분 1글자내지 2글자의 삭제, 갱신, 삽입의 연산 내에 있다는 가정하에….. 1) Delete, Update, Insert에 대한 cost를 […]

계속 읽기

Dynamic Programming : Edit Distance (and Lucene FuzzyQuery)

Lucene에서 Edit Distance를 이용해 쿼리를 날려서 검색 결과를 받는 기능이 있다. 그때 막연하게 시간이 많이 걸린다고 책에서 나와 있는 관계로 왜 많이 걸릴까 고민을 하지 않던 찰라 기회가 생겨서 Edit Distance를 구하는 알고리즘을 공부하고 구현해 봤다. 결과적으로 Dynamic Programming 문제이긴 한데, 이것과 배낭문제 그리고 어제 학교에서 공부했던 Routing Algorithm(최단 라우팅 거리 측정 알고리즘)을 비교해서 보니 […]

계속 읽기

sphere 블로그 검색엔진의 랭킹에 대한 생각

sphere 블로그 검색에 대한 약간의 힌트를 얻을 수 있는 자료들을 모아서 mind map으로 정리를 해봤다. 블로그의 링크 구조에 대한 외국 논문은 약간 구할 수 있었는데, 블로그 검색에 대한 글을 전혀 볼 수가 없었다. 일단 학위논문 주제를 블로그 검색으로 정한봐 이런저런 논문을 보고 있고 정리도 좀 하고 있는데 sphere를 그냥 지나칠 수가 없군. 그래서 sphere에 대한 […]

계속 읽기

MapReduce와 GFS

GFS의 구조를 단적으로 보여주는 그림이다. Master서버에 거의 부하가 가지 않는 그런 구조로 되어 있고, 여러 replics를 두어서 chunk 서버 하나가 다운이 되도 그대로 수행이 가능하게끔 구성이 되어 있다. 64MB의 크기로 chunk가 나뉘어져 있어서 chunk 인덱스를 계산하기가 편하게 되어 있고, 네임 스페이스 검색은 Trie 구조로 되어 있다는것을 그림으로 살짝 엿볼 수 있다. 이런 구조의 가장 큰 […]

계속 읽기

GP2X 하드웨어 컨트롤

평소 GP2X를 Telnet으로 연결을 했을때 Backlight가 계속 켜져 있고 LCD가 활성화 되어 있는걸 보고 LCD의 수명을 늘리고저 이놈의 하드웨어 스펙을 찾아 보고 있었다.(주로 Telnet으로 가지고 논다.) 대부분의 하드웨어를 컨트롤하는 소프트웨어는 내부 IO를 관장하는 메모리 부분의 값으로 하드웨어를 제어 한다는 사실을 알았고, GP2X의 내부 IO메모리의 메모리 맵에 대한 정보를 찾던중 GPIO Reference를 찾아 응용해서 LCD 제어 […]

계속 읽기

[검.개.그 공지] 검색엔진 개발 프로젝트를 진행하려 합니다.

이런 저런 문제 때문에 오픈소스로 개발하고 있던 형태소 분석기의 소스공개도 못하고 개발할 시간이 없어서 망설이고 있는 시점에 지지난주 주말에 한번 모여서 “하얀눈길”님이 추진하고자 하셨던 공개 검색엔진 개발 프로젝트가 가시화 되는거 같다. 몇일전에 공지 문서 하나가 날라왔었는데 카페에 가보니 드디어 공지가 떳다. 안녕하세요. 카페지기 하얀눈길입니다. 카페차원에서 검색엔진 개발을 시작해 보려 합니다. 자세한 사항은 아래 첨부내용 참고하시구요.. […]

계속 읽기