루씬(Lucene)은 증분색인을 지원하지만 자료의 추가와 최적화(optimize)에 많은 오버헤드가 걸리는 문제점이 있다. 모두가 아는것처럼 최적화에 24 시간 이상을 잡아 먹기도 한다.
최적화와 서비스의 연관성을 살펴보면 최적화 작업중에는 검색서비스의 속도가 현저히 떨어진다는 문제점이 있는데 루씬이 가지는 양면의 칼날과 같은 장단점이라 어쩔 도리가 없는게 현실이다.

자료의 양이 많아지면 수십기가(GB) 혹은 수백기가(GB)까지 용량이 증가하게 되는데 무조건 최적화 한다는 것도 문제고 무작정 파일수를 늘려가며 증분색인을 한다는 것도 문제가 된다.

JSP와 연동하는경우 더더욱 복잡한 문제가 되곤하는데 다봇의 경우 아래 그림과 같이 3개의 폴더를 이용해 실시간(--) 증분색인을 처리하고 있다.
물론 최대 2,000만건의 자료를 상정하고 책정한 정책이므로 1억건 정도의 자료를 처리하기
위해서는 별도의 정책이나 HADOOP과 같은 병렬처리 구조를 차용해야만 한다.

처리 순서

  1. 크롤러(crawler)에 의해 수집된 자료가 DB(MySQL)에 저장된다.

  2. Indexer.java 가 무한대로 반복하여 작업을 수행하며 DB에 최종 인덱싱된 자료로 부터
     100개 이상의 자료가 추가되었거나 지정된 시간(다봇은 5분)을 충족하면 개수에 상관없이
     "a폴더"에 자료를 기록하고 무조건 최적화를 수행한다.
     (다봇은 10,000개까지 'a폴더"에서 최적화를 수행하며 쌓인 자료의 개수에 따라 0.1~5초
     내외의 최적화 시간이 소요된다)

  3. "a폴더"에 10,000개의 자료가 쌓이면 "aa폴더"에 addIndexes 메쏘드를 이용해 병합처리
      한다. 병합이 완료됨을 확인한후 "a폴더"의 내용을 삭제처리함.

  4. "aa폴더"에 100,000개의 자료가 쌓이면 "aaa폴더"에 addIndexesNoOptimize 메쏘드를
      이용해 최적화 하지 않고 병합처리하도록 한다. 물론 병합이 완료되면 "aa폴더"의
      내용은 삭제처리한다.

  5. "aaa폴더"는 다봇의 경우 10만개 짜리 파일이 10개 정도 쌓이는 시점 그주 주말 새벽
      시간을 이용해 병합처리를 행하고 있다.
     

사용자 삽입 이미지
Posted by 나란트
드뎌 Google 크롬에서 깨지는 현상을 바로 잡았습니다.
현재 다봇은 대표적인 3가지 종류의 브라우져를 지원합니다.
** 다만 IE 에서는 잘되는 페이지 자동스크롤 기능이 파이어폭스와 크롬에서는 진행상태 표시가
제대로 되지 않네요. 물론 기능에는 문제가 없습니다.

사용자 삽입 이미지
Posted by 나란트
사용자 삽입 이미지
다봇(DABOT)은 네이버(Naver) 나 다음(Daum) 그리고 파란(Paran) 등으로 대표되는 포털의 검색서비스에 염증을 느낀 한명의 개발자에 의해 개발되고 있는 블로그/뉴스 중심의 실시간 트렌드(Trend) 검색엔진입니다.

다봇이 가진 장점은 여타 중소 검색엔진들이 RSS 데이터를 이용하여 자료를 모으는것과 달리 블로그외에 뉴스 및 기타 사이트를 대상으로 컨텐츠에 포함된 멀티미디어 자료 및 이미지등을 비교적 정확하게 크롤링(Crawling) 할수 있는 기반 기술로 웹 스크랩툴 다모아(http://damoa.tistory.com) 의 스크랩 관련 라이브러리를 이용하고 있다는 점입니다.

아직은 몇대 되지 않는 크롤러와 한두대의 서버로 운영되고 있지만 언젠가는 구글(Google)을 뛰어넘는 꿈을 꾸고 있습니다.

광고로 도배된 포털의 검색에 실증을 느낀신 분들과 포털의 자체 블로그 상위 랭킹 점유에 염증을 느끼셨던 많은 블로거의 동참을 원합니다. 같이 성장할수 있는 다봇이 되도록 하겠습니다.
Posted by 나란트

BLOG main image
포털 검색이 너무 인위적으로 편집되거나 자사의 컨텐츠 위주로 나열되는 모순에 염증을 느낀 아마추어 프로그래머의 검색엔진 도전기! by 나란트

공지사항

카테고리

분류 전체보기 (14)
다봇소개 (1)
개발일기 (0)
횡설수설 (2)
개발관련 (10)

최근에 받은 트랙백

글 보관함

달력

«   2009/07   »
      1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31  
Total : 1,703
Today : 0 Yesterday : 1