180 likes | 790 Views
네이버 검색엔진 구조. 네 이 버 ( N A V E R ) 최 병 엽 http://www.naver.com bychoi@mail.naver.com tel: 02-3420-2306 fax: 02-3420-2345. ( 색인구조 및 질의처리 ). 네이버 검색엔진 네이버 검색엔진 구조 웹로봇 , 문서분석기 , 저장관리기 , 질의어처리기 응용 분야 분류 , 웹 , 메타 , 이미지 , 사운드 검색엔진의 발전방향. 목 차. 인터넷 검색엔진. 인터넷 검색엔진 외국
E N D
네이버 검색엔진 구조 네 이 버 ( N A V E R ) 최 병 엽 http://www.naver.com bychoi@mail.naver.com tel: 02-3420-2306 fax: 02-3420-2345 (색인구조 및 질의처리)
네이버 검색엔진 네이버 검색엔진 구조 웹로봇, 문서분석기, 저장관리기, 질의어처리기 응용 분야 분류, 웹, 메타, 이미지, 사운드 검색엔진의 발전방향 목 차
인터넷 검색엔진 • 인터넷 검색엔진 • 외국 • Yahoo, Lycos, Altavista, Infoseek, Excite • 국내 • 네이버, 한미르, 심마니, 엠파스 … • 인터넷 현황 • 호스트 수(KR) • 7만(97년) => 30만 이상(2000년 4월) • 웹문서수(HTML) • 40만건(97년) => 400만건(98년) => 3000만건(2000년)
네이버 검색엔진 • History • 94 ~ 95년 정부기관 검색프로젝트로 시작 • 95 ~ 96년 유니텔 신문기사검색시스템 구축 • 97년 2월 웹글라이더 검색서비스 시작 • 97년 12월 네이버 검색서비스 시작
네이버 검색엔진 구조 • 구성 • 웹로봇 (Nabot) • 문서분석기 형태소분석기(한성대학교 강승식교수 HAM) Index Builder (자체 개발) • 저장관리기 COSMOS (한국과학기술원 황규영교수) Storage Manager (자체 개발) • 질의어처리기 랭킹알고리즘 (숭실대 이준호 교수) 질의어 처리기 (자체개발)
검색엔진 주요기술 (1) • 주요기술 • 웹로봇(Web Robot) • 분류(Directory Browsing) • Tokenizing, Indexing, Building • B+ Tree, Hashing, Compression • Query Optimization, Ranking • HTML I/F, Web Server Technique
HTML Database URL Database Nabot(1) HTML Document Internet Robot Server
Nabot (2) • 기능 • 인터넷을 돌아다니면서 문서수집 및 링크분석 • Socket Program based on TCP/IP • 특징 • 링크 및 HTML 분석 DB화 • 중복문서 제거처리 • 500만건/일 수집 및 DB화 가능 • 수집 후 문서추출방식으로 색인시스템과 연결
Index Builder(1) • 색인 • 문서로부터 검색어 추출 • 언어에 따라 특화된 알고리즘 구현 • 한글색인방식 • 형태소분석법 사용 • Building • Real Time Indexing • Bulk Indexing 지원
문서헤더분석기 색인어추출기 후처리기 사전, 시소러스 Index Builder(2) 문서 데이타 AB... ...... .... 문서본문 색인결과 분석 결과 색인어리스트
Index Builder(3) • 한글색인방식 비교 • 형태소분석법 • 입력문서의 각 어절별로 형태소분석, 명사추출 • 형태소분석사전이용 명사 및 복합명사 추정가능 • 애매성, 모호성 문제 발생 • N-Gram(Bi-Gram) • DA: 정보검색 => 정보 + 보검 + 검색 으로 색인 • QP: 정보검색 => (정보 & 보검 & 검색)으로 검색 • 순서오류발생 (부정사 = 부정한 정사) • 검색효율문제 발생 (긴 단어의 경우 …)
DocId DocId DocId DocId DocId DocId DocId DocId B+ tree on term DocId DocId DocId DocId DocId Index INV File url title body Document Header url title body B+ tree on - 검색 대상이 되는 문서의 내용을 저장 DocId url title body - 원하는 문서의 빠른 access 를 위해 url title body Index 문서의 ID 에 대해 index 를 사용하여 access DOC File Storage Manager Inverted List - 문서내의 각 단어 (term) 들에 대해 그 단어가 나타난 문서의 DocId 들의 리스 트를 저장 - 원하는 단어의 리스트 데이터의 acces s 를 위해 각 단어들에 대해 index 를 사 용하여 access
Compression • 압축속도 비교 • 압축시 I/O Time 감소, CPU Time 증가 • 검색속도는 I/O 시간이 좌우(?) • CPU Time Dependent Operation • 압축적용 • CPU 속도 증가 • 압축적용시 저장공간 50%이상 Save • 특정환경에서 색인/검색 속도 증가 • 검색시 압축알고리즘 적용 필요
InvHdr Pos Pos Pos B+ tree on InvHdr Pos Pos Pos term InvHdr Pos Pos B+ tree on reversed term InvHdr Pos Index INV File Query Processor (1) 1. Convert to tree Struct. n-ary tree structure word 사용자 word word 질의 word word Storage Manager 4. Rank 3. Merge 2. Match Words Results Results
Query Processor (2) • Query Optimization • 연산횟수 줄이는 방향으로 질의재구성 • Ranking • Tw (Term Weight) • (Term frequency/Document length) • IDF (Inverse Document Frequency) • Log(N/n) (N: 전체문서갯수, n: term에 대한 문서갯수) • Ranking • Tw * IDF 에 의해 결정
Application • 디렉토리 검색 • 웹검색 • 대용량 & Static Data 검색 • 신문검색 • 대용량 Multi DB 검색 • Real Time Indexing • 이미지/사운드 검색 • Trivial & Heuristic • 서치센타 서비스
검색엔진 발전방향 • 자연어 검색 • 색인 및 구문분석을 통한 자연어검색 => X • 벡터/확률모델방식 검색알고리즘 => O • Relavance Feedback, Query Expansion 적용 • 개인화 • Information Filtering • Social Filtering • 대용량화 • 검색문서수 증가, 처리문서수 증대 • 네트워크 분산 및 전문DB 검색방식 확대