2. 검색엔진의 진화
이용자의 편의성을 생각한다
구글 개발의 목적 : 기존의 웹 검색엔진들보다 유용한 검색 결과
를 얻기 위해서
검색 결과의 Rangking : 웹 페이지에 점수를 매기고, 점수가 높
은 페이지를 상단에 위치
하드웨어를 확장한다
전 세계에서 수집한 웹 페이지
웹 페이지에 순위를 매기다
페이지랭크
앵커 텍스트
단어
3. PageRank
각 웹 페이지는 자신의 점수를 갖는다
다른 페이지로 링크하면 자신의 점수를 나누어 준다
자신의 점수는 다른 페이지에서 받은 점수의 합계로
정한다
검색엔진 스팸
링크를 조작하여 부당하게 평가를 올리려는 웹 페이지와
•
그런행위
4. AnchorText
웹 페이지에 링크를 할 때 링크된 문자열
수많은 페이지에 링크되어 있다는 사실은 자신이 직
접 말하는 것보다 신뢰성이 높다고 볼 수 있다
앵커 텍스트를 중시
페이지랭크는 무엇을 검색하더라도 변화가 없지만,
앵커 텍스트는 이용자가 검색하려고 할 때만 의미를
갖는다
5. 단어
웹 페이지에 포함된 모든 단어를 기록 -> 랭킹에 반영
여러 단어를 검색할 때 큰 의미를 갖는다
단어 자체의 글씨 크기, 속성도 랭킹에 영향
6. Ranking Function
수 많은 정보들을 조합하여 최종적으로 검색 결과에
순위를 매기는 것
끊임없이 개량 작업이 이루어질 것으로 추정
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에 랭킹 기
법 적용