ݺߣ

ݺߣShare a Scribd company logo
구글을 지탱하는 기술
       제 1장 구글의 탄생



             061651 신은미
검색엔진의 진화
    이용자의 편의성을 생각한다

        구글 개발의 목적 : 기존의 웹 검색엔진들보다 유용한 검색 결과
    
        를 얻기 위해서
        검색 결과의 Rangking : 웹 페이지에 점수를 매기고, 점수가 높
    
        은 페이지를 상단에 위치

    하드웨어를 확장한다

        전 세계에서 수집한 웹 페이지
    


    웹 페이지에 순위를 매기다

        페이지랭크
    
        앵커 텍스트
    
        단어
    
PageRank
    각 웹 페이지는 자신의 점수를 갖는다

    다른 페이지로 링크하면 자신의 점수를 나누어 준다

    자신의 점수는 다른 페이지에서 받은 점수의 합계로

    정한다

    검색엔진 스팸

        링크를 조작하여 부당하게 평가를 올리려는 웹 페이지와
    •
        그런행위
AnchorText
    웹 페이지에 링크를 할 때 링크된 문자열

    수많은 페이지에 링크되어 있다는 사실은 자신이 직

    접 말하는 것보다 신뢰성이 높다고 볼 수 있다
    앵커 텍스트를 중시



    페이지랭크는 무엇을 검색하더라도 변화가 없지만,

    앵커 텍스트는 이용자가 검색하려고 할 때만 의미를
    갖는다
단어
    웹 페이지에 포함된 모든 단어를 기록 -> 랭킹에 반영



    여러 단어를 검색할 때 큰 의미를 갖는다



    단어 자체의 글씨 크기, 속성도 랭킹에 영향

Ranking Function
    수 많은 정보들을 조합하여 최종적으로 검색 결과에

    순위를 매기는 것

    끊임없이 개량 작업이 이루어질 것으로 추정

검색엔진의 구조


           검색엔진




이
                        인
    검색             검색
용
           인덱스          터
자   서버            백엔드
                        넷
검색 back-end
    크롤러 : 웹 페이지 정보수집



    크롤링 : 다양한 웹 페이지를 수집해오는 기술



    리포지터리 : 웹 페이지 임시 저장소



    인덱스 생성 : 웹 페이지를 검색용 인덱스로 만들어 내

    는 과정
검색 back-end

     인덱스 생성   크롤링

              크롤러
      구조 해석


              크롤러
      단어 처리           인
인
                      터
덱
                      넷
스             크롤러
      링크 처리


       랭킹


              리포지터리
Crawling
    기능적 시스템 오류

        특정 웹 사이트에 액세스 집중 X – 사이트로부터 거부 가능성
    
        연결되지 않는 웹 서버 & 악의적 사이트
    
        - 서버와 통신 끊고 다음 서버로 넘어가기

    웹페이지 수집에는 시간이 걸린다

        다운로드 받은 페이지라도 정기적으로 확인
    
        평균 속도를 유지하기 위해서 고속 다운로드는 필수
    


    여러 개의 다운로드를 동시에 진행한다

        URL서버가 각 크롤러Craweler가 다운해야 할 웹 페이지 주소 전달
    
        크롤러는 완전히 독립적으로 작동하므로 크롤러의 수를 늘릴 수록 처리 능
    
        력 향상

    끝나지 않는 크롤링

        내부에서 독립적으로 DNS 캐시를 관리
    
Index
    주어진 데이터를 안전하게 저장.



    요청 받은 데이터를 빠른 속도로 찾아내기



    검색엔진의 데이터베이스와 같은 존재



    특정한 키에 연관된 정보를 연결 -> 효율적인 검색, 간결한

    데이터 표현

    문자열을 숫자로 표현

        검색에 필요한 데이터의 양을 줄일 수 있다
    
        처리 속도를 높이는 방법이 될 수 있다
    
Index Creating
    웹 페이지의 구조해석

         HTML 태그 분석 -> 정보추출 & 필요 없는 정보 버리기
    
         DocIndex : 웹 페이지의 기본 정보 기록, docID를 키로 하
    
         여 웹 페이지의 정보 기록
         URLlist : 웹 페이지의 URL을 키로 하여 docID를 가져오기
    
         위한 인덱스




                  DocIndex                     URLlist
                                 기타 정보
        docID   url      title           url         docID
Index Creating
    단어 정보의 인덱스

        텍스트를 단어로 분해 -> wordID 수치로 변환 : Lexicon
    
        단어 인덱스 생성
    
            docID : 웹 페이지 고유의 숫자 값
        
            wordID : 특정한 단어를 나타내는 숫자 값
        
            위치 : 웹 페이지 내에서의 단어 위치
        
            크기 : 웹 페이지 내에서의 단어 크기
        
            기타 : 그 밖의 문자 서식에 관한 정보
        
        wordId에 따라 여러 인덱스 생성 -> Barrels
    
            docId를 기준으로 wordID별로 데이터 정리
        
        역 인덱스 생성
    
            wordId를 기준으로 docId를 얻을 수 있도록 한 것
        


                  Barrels                     Barrels
                                …                           …
1           101     1       3       101   1     1       3
                                …                           …
                    4       2                   4       2
                                …                           …
            102     2       2       102   1     2       2
Index Creating
    링크 정보의 인덱스

        URLlist와 Links이용 -> 웹 페이지 링크 정보를 인덱스 할
    
        때 그 페이지의 docId와 연관된 웹 페이지의 docId가 더해
        져 Links에 기록


    검색 순위

        랭킹의 품질 위해 사전에 랭킹 순위를 인덱스 하지 않고,
    
        검색할 때 마다 검색 서버에 랭킹을 시키는 방법 집중
겶색서버
    이용자와의 통신관리

    이용자의 요청을 해석하여 처리할 내용 판단

    인덱스에서 필요한 정보찾기

    결과를 보기 쉽게 편집하여 이용자에게 보내기



    검색 서버에 요구되는 것은 스피드

검색 서버
      검색의 흐름
  
          이용자가 검색 요청
      ①
          검색어가 Lexicon에 의해 wordID로 변환
      ②
          wordID를 역 인덱스에서 검색하여 docId 리스트 가져옴
      ③
          docId에 랭킹 함수 적용, 점수가 높은 순으로 정렬
      ④
          상위 docID 각각에 대해 웹 페이지 정보 추출
      ⑤
          정보를 보기 쉽게 정리해서 결과를 이용자에게 보냄
      ⑥


                  Lexicon
이용자             단어     wordID        Barrels
                학교      101
                                               검색 서버

                결과              DocIndex
검색 서버
    복잡한 검색도 빠르게 실행한다

        단어가 wordId로 변환되고 그에 따른 docID 리스트를 여러
    
        개 얻을 수 있음 -> 공통의 docId찾기 쉽다


    3단계 랭킹 시스템

        Barrels에서 중요한 정보만 뽑아 사전에 작은 역 인덱스를
    
        만들어 둔다
        보통의 역 인덱스에서 모든 docID를 찾고, 결과가 많을 시
    
        랭킹을 포기 -> 점수가 높은 웹 페이지 선택
        docId의 개수가 일정한 수 이하일 시 모든 docId에 랭킹 기
    
        법 적용

More Related Content

구글을 지탱하는 기술

  • 1. 구글을 지탱하는 기술 제 1장 구글의 탄생 061651 신은미
  • 2. 검색엔진의 진화 이용자의 편의성을 생각한다  구글 개발의 목적 : 기존의 웹 검색엔진들보다 유용한 검색 결과  를 얻기 위해서 검색 결과의 Rangking : 웹 페이지에 점수를 매기고, 점수가 높  은 페이지를 상단에 위치 하드웨어를 확장한다  전 세계에서 수집한 웹 페이지  웹 페이지에 순위를 매기다  페이지랭크  앵커 텍스트  단어 
  • 3. PageRank 각 웹 페이지는 자신의 점수를 갖는다  다른 페이지로 링크하면 자신의 점수를 나누어 준다  자신의 점수는 다른 페이지에서 받은 점수의 합계로  정한다 검색엔진 스팸  링크를 조작하여 부당하게 평가를 올리려는 웹 페이지와 • 그런행위
  • 4. AnchorText 웹 페이지에 링크를 할 때 링크된 문자열  수많은 페이지에 링크되어 있다는 사실은 자신이 직  접 말하는 것보다 신뢰성이 높다고 볼 수 있다 앵커 텍스트를 중시  페이지랭크는 무엇을 검색하더라도 변화가 없지만,  앵커 텍스트는 이용자가 검색하려고 할 때만 의미를 갖는다
  • 5. 단어 웹 페이지에 포함된 모든 단어를 기록 -> 랭킹에 반영  여러 단어를 검색할 때 큰 의미를 갖는다  단어 자체의 글씨 크기, 속성도 랭킹에 영향 
  • 6. Ranking Function 수 많은 정보들을 조합하여 최종적으로 검색 결과에  순위를 매기는 것 끊임없이 개량 작업이 이루어질 것으로 추정 
  • 7. 검색엔진의 구조 검색엔진 이 인 검색 검색 용 인덱스 터 자 서버 백엔드 넷
  • 8. 검색 back-end 크롤러 : 웹 페이지 정보수집  크롤링 : 다양한 웹 페이지를 수집해오는 기술  리포지터리 : 웹 페이지 임시 저장소  인덱스 생성 : 웹 페이지를 검색용 인덱스로 만들어 내  는 과정
  • 9. 검색 back-end 인덱스 생성 크롤링 크롤러 구조 해석 크롤러 단어 처리 인 인 터 덱 넷 스 크롤러 링크 처리 랭킹 리포지터리
  • 10. Crawling 기능적 시스템 오류  특정 웹 사이트에 액세스 집중 X – 사이트로부터 거부 가능성  연결되지 않는 웹 서버 & 악의적 사이트  - 서버와 통신 끊고 다음 서버로 넘어가기 웹페이지 수집에는 시간이 걸린다  다운로드 받은 페이지라도 정기적으로 확인  평균 속도를 유지하기 위해서 고속 다운로드는 필수  여러 개의 다운로드를 동시에 진행한다  URL서버가 각 크롤러Craweler가 다운해야 할 웹 페이지 주소 전달  크롤러는 완전히 독립적으로 작동하므로 크롤러의 수를 늘릴 수록 처리 능  력 향상 끝나지 않는 크롤링  내부에서 독립적으로 DNS 캐시를 관리 
  • 11. Index 주어진 데이터를 안전하게 저장.  요청 받은 데이터를 빠른 속도로 찾아내기  검색엔진의 데이터베이스와 같은 존재  특정한 키에 연관된 정보를 연결 -> 효율적인 검색, 간결한  데이터 표현 문자열을 숫자로 표현  검색에 필요한 데이터의 양을 줄일 수 있다  처리 속도를 높이는 방법이 될 수 있다 
  • 12. Index Creating 웹 페이지의 구조해석  HTML 태그 분석 -> 정보추출 & 필요 없는 정보 버리기  DocIndex : 웹 페이지의 기본 정보 기록, docID를 키로 하  여 웹 페이지의 정보 기록 URLlist : 웹 페이지의 URL을 키로 하여 docID를 가져오기  위한 인덱스 DocIndex URLlist 기타 정보 docID url title url docID
  • 13. Index Creating 단어 정보의 인덱스  텍스트를 단어로 분해 -> wordID 수치로 변환 : Lexicon  단어 인덱스 생성  docID : 웹 페이지 고유의 숫자 값  wordID : 특정한 단어를 나타내는 숫자 값  위치 : 웹 페이지 내에서의 단어 위치  크기 : 웹 페이지 내에서의 단어 크기  기타 : 그 밖의 문자 서식에 관한 정보  wordId에 따라 여러 인덱스 생성 -> Barrels  docId를 기준으로 wordID별로 데이터 정리  역 인덱스 생성  wordId를 기준으로 docId를 얻을 수 있도록 한 것  Barrels Barrels … … 1 101 1 3 101 1 1 3 … … 4 2 4 2 … … 102 2 2 102 1 2 2
  • 14. Index Creating 링크 정보의 인덱스  URLlist와 Links이용 -> 웹 페이지 링크 정보를 인덱스 할  때 그 페이지의 docId와 연관된 웹 페이지의 docId가 더해 져 Links에 기록 검색 순위  랭킹의 품질 위해 사전에 랭킹 순위를 인덱스 하지 않고,  검색할 때 마다 검색 서버에 랭킹을 시키는 방법 집중
  • 15. 겶색서버 이용자와의 통신관리  이용자의 요청을 해석하여 처리할 내용 판단  인덱스에서 필요한 정보찾기  결과를 보기 쉽게 편집하여 이용자에게 보내기  검색 서버에 요구되는 것은 스피드 
  • 16. 검색 서버 검색의 흐름  이용자가 검색 요청 ① 검색어가 Lexicon에 의해 wordID로 변환 ② wordID를 역 인덱스에서 검색하여 docId 리스트 가져옴 ③ docId에 랭킹 함수 적용, 점수가 높은 순으로 정렬 ④ 상위 docID 각각에 대해 웹 페이지 정보 추출 ⑤ 정보를 보기 쉽게 정리해서 결과를 이용자에게 보냄 ⑥ Lexicon 이용자 단어 wordID Barrels 학교 101 검색 서버 결과 DocIndex
  • 17. 검색 서버 복잡한 검색도 빠르게 실행한다  단어가 wordId로 변환되고 그에 따른 docID 리스트를 여러  개 얻을 수 있음 -> 공통의 docId찾기 쉽다 3단계 랭킹 시스템  Barrels에서 중요한 정보만 뽑아 사전에 작은 역 인덱스를  만들어 둔다 보통의 역 인덱스에서 모든 docID를 찾고, 결과가 많을 시  랭킹을 포기 -> 점수가 높은 웹 페이지 선택 docId의 개수가 일정한 수 이하일 시 모든 docId에 랭킹 기  법 적용