Recommanded Free YOUTUBE Lecture: <% selectedImage[1] %>

About

Nutch는 Jakarta Lucene 기반의 공개 웹검색 엔진이다. 대략적인 구조는 다음과 같다.

attachment:nutcharch.gif

Nutch 데이타는 두가지 타입으로 나뉜다.
  1. Web database: Nutch가 알고 있는 모든 사이트에 대한 정보를 포함하며, 여기에는 페이지들 사이를 이어주는 링크정보도 파함한다. Web DB에는 protocol://server/page 형식의 URL목록과 링크정보들이 들어간다.
  2. segement 목록 : 각 세그먼트에는 fetch된 페이지와 색인정보를 포함하고 있다. 검색은 segment단위로 이루어진다. 이들 segment는 만들어진 시간을 이름으로 여러개가 생성될 수 있다. 세그먼트는 다음과 같은 정보들의 집합이다.
    • fetchlist : fetch된 페이지의 이름을 가진 파일이다. fetchlist는 web DB에 의해서 만들어지며, 웹페이지의 분석과 랭킹알고리즘을 적용하기 위한 기초자료가 된다.
    • fetcher output : fetch된 파일의 정보를 포함하고 있는 파일들이다. Nutch는 fetcher_contentfetcher_text 두가지 타입의 fetcher output을 가진다. fetcher_content는 웹페이지의 원본데이터를 그대로 가지고 있으며, fetcher_text는 텍스트 형식의 데이터만을 저장하고 있다. 이 두개의 파일은 fetch가 끝난후에 fetch된 웹페이지에 대해서 <key, value>로 구성된 index.data형태로 재구성된다. key는 현재 페이지가 존재하는 segment내에서의 일련번호이며, value는 일련번호에 대응되는 페이지의 문서내용이다. 이 Key는 세그먼트내에서 유일한 값을 가진다.
    • 색인 : lucene 색인을 참고하기 바란다.
  3. fetch output 데이터는 Nutch reader에 의해서 읽을 수 있는 데이터 포맷으로 저장이 된다. Nutch는 net.nutch.fetcher.FetcherContent와 net.nutch.fetcher.FetcherText를 이용해서 fetcher_content와 fetcher_text로 부터 데이터를 읽을 수 있다.