최신목록 받아보기 -> (버튼을 누르시면 HanRSS로 구독하실 수 있습니다)
- '지민아빠의 해처리..

'웹검색'에 해당되는 글 2건

  1. 2007/12/19 미러사이트를 판단하는 것에 대한 논문
  2. 2007/11/01 공개 검색엔진 Nutch의 구조 (2)

미러사이트를 판단하는 것에 대한 논문

2007/12/19 09:37 by 지민아빠

1998년 경에 쓰여진 Mirror, Mirror on the Web: A Study of Host Pairs with Replicated Content라는 논문을 읽어 보았다.


미러사이트는 네트웍 트래픽을 줄이기 위하여 다른 컴퓨터 서버를 복사해 놓은 웹사이트 또는 컴퓨터 파일서버를 말하는데, 중복페이지가 존재하는 것과 다르게 미러사이트는 원사이트의 정확한 복제품을 말한다.

보통 다운로드 사이트의 경우 트래픽을 분산 시키기 위하여 미러사이트 들을 사용하는데, 논문에서 다루고 있는 내용은 미러로 운영되는 웹사이트를 구분하기 위한 방법을 말한다.여기에는 kangcom.com 이나 wowbook.com 처럼 같은 내용으로 포워딩되는 경우도 포함 될 수 있다.


논문의 아이디어는 여러개의 URL의 Path 유사도를 계산해 봐서 Path가 거의 비슷한 Host 들은 미러사이트라고 판단하는 방법이다. 미러사이트는 정확한 복제품 이므로 Path 구조도 동일하게 된다. 논문에서는 아래와 그림과 같은 방법으로 레벨을 나누어서 실험해 보았다.

사용자 삽입 이미지
 

논문의 결과보다는 실제 내가 실험해 볼 수 있는 URL 집합에 어느정도 효과가 있을지가 더 궁금 했으므로, 테스트를 해 본 결과, 미러사이트를 판단하는 정확도는 비교적 높았으나, 발견해 내는 비율이 좋지 않았다. 이유는 아래와 같았다.

  • URL 집합이 각각의 Host 별로 고르게 분포되지 않았다. 예를 들어 Host A 와 Host B는 미러사이트 이지만 Host A의 URL은 10개 Host B의 URL은 1000개가 존재 한다면 비교할 대상은 10개 밖에 안된다.
  • 블로그 툴이나 쇼핑몰 툴로 일괄적으로 만들어진 사이트, 각 지방별 정부단체 사이트 등 Path 구조가 거의 동일하고, 컨텐츠 내용도 그림 몇개만 빼고 거의 비슷한 경우는 판단하기가 꽤 힘들다. (정확도를 떨어뜨리는 주요 이유) 이 경우 굉장히 많은 숫자의 Host에서 높은 빈도수로 나오는 몇몇 Path를 제외하면 정확도가 꽤 높아진다.

논문의 내용대로 약간 보정해서 적용하면 정확도는 꽤 괜찮아서, 쓸만한 것 같았다. 그러나 (Host별로 고르지 않은 URL 분포 때문에) 발견해 내는 비율이 떨어지는 문제를 보완하기 위해서, 다른 방법을 병행할 필요가 있는 것 같다.


참고문헌:

Mirror, Mirror on the Web: A Study of Host Pairs with Replicated Content by Krishna Bharat and Andrei Broder

이 글은 스프링노트에서 작성되었습니다.

공개 검색엔진 Nutch의 구조

2007/11/01 01:03 by 지민아빠

Nutch는 자바로 구현된 오픈소스 검색엔진 입니다. Lucene이 Indexer 와 Searcher로 구성되어 있고, Nutch는 Lucene에 없는 웹검색에 필요한 모든 기본요소를 전부 갖추어서 웹검색 용으로 확장 한 것이라고 보면 될 것 같습니다. 그래서 Nutch Lucene 기반의 공개 웹검색 엔진입니다. Nutch는 많은 부분 구글 검색 엔진 구조를 목표로 하고 있습니다.

전체적인 구조는 일반적인 웹검색 시스템의 구조와 비슷한 것 같습니다.

사용자 삽입 이미지

Nutch의 구조는 그림과 같은데, 이걸 지금 제가 알고 있는 웹검색 시스템의 구조로 이해하기 위해서 대충 나누어 보면 아래처럼 나눌 수 있을 것 같습니다.

  1. Crawler
    • Nutch는 웹데이터 들을 효과적으로 가져올 수 있는 fetcher 들을 가지고 있습니다. 이를 통해서 목표로 하는 URL 들의 데이터를 수집하고, 이 작업은 목표로 하는 깊이까지 도착하면 멈춥니다.
  2. Repository
    • 수집된 웹 데이터 들은 Repository에 저장됩니다. Nutch에서는 특별히 Repository 라는 명칭을 사용하지는 않지만, WebDB와 Segment들이 여기에 해당 한다고 볼 수 있을 것 같습니다.
  3. Indexer
    • 수집된 데이터는 Lucene에서 사용 가능한 Index 형식으로 구성되어야 합니다.
  4. Searcher
    • 구성된 Index는 Lucene Searcher 에서 사용됩니다.

몇일 뒤에 어떤 고마운 분이 Nutch의 구조나 특징에 대하여 조사 한것을 설명 해 주실텐데 Nutch가 어떻게 생긴건지 전혀 몰라서 간단히 살펴 보았습니다. 이제 어느정도 설명을 들을 만한 최소한의 기본 준비는 한 것 같으니 이제 기다려야 겠군요. ^^


참고문헌:

Introduction to Nutch, Part 1: Crawling by Tom White 2006/01/10 번역본

Introduction to Nutch, Part 2: Searching by Tom White 2006/02/16

Nutch: Open-Source Web Search Software by Doug Cutting(doug@nutch.org) 2004/11/26

Open Source Search by Doug Cutting(cutting@apache.org) 2005/12/05

이 글은 스프링노트에서 작성되었습니다.