네이버 검색엔진 구조네이버 검색엔진 구조(색인구조 및 질의처리 )
네 이 버 ( N A V E R )최 병 엽
http://www.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)(1)
주요기술
- 웹로봇 (Web Robot)- 분류 (Directory Browsing)- Tokenizing, Indexing, Building- B+ Tree, Hashing, Compression- Query Optimization, Ranking- HTML I/F, Web Server Technique
검색엔진 주요기술 검색엔진 주요기술 (2)(2)
DocumentAnalyzer
StorageManager
QueryProcessor
Database
indexdocument
query
result
DocumentLoader
QueryInterface
AdministratorInterface
document query
document
control status
NAVER
Nabot(HTML)
Nabot(1)Nabot(1)
Robot Server
URLDatabase
HTMLDatabase
Internet
HTML Document
Nabot (2)Nabot (2)
기능- 인터넷을 돌아다니면서 문서수집 및 링크분석- Socket Program based on TCP/IP
특징- 링크 및 HTML 분석 DB 화- 중복문서 제거처리- 500 만건 /일 수집 및 DB 화 가능- 수집 후 문서추출방식으로 색인시스템과 연결
Index Builder(1)Index Builder(1)
색인- 문서로부터 검색어 추출- 언어에 따라 특화된 알고리즘 구현
한글색인방식- 형태소분석법 사용
Building- Real Time Indexing- Bulk Indexing 지원
Index Builder(2)Index Builder(2)
문서헤더분석기AB...
......
....
분석결과
사전 , 시소러스
후처리기색인어추출기
문서
데이타
문서본문 색인결과
색인어리스트
Index Builder(3)Index Builder(3)
한글색인방식 비교- 형태소분석법
입력문서의 각 어절별로 형태소분석 , 명사추출 형태소분석사전이용 명사 및 복합명사 추정가능 애매성 , 모호성 문제 발생
- N-Gram(Bi-Gram) DA: 정보검색 => 정보 + 보검 + 검색 으로 색인 QP: 정보검색 => ( 정보 & 보검 & 검색 )으로 검색
- 순서오류발생 (부정사 = 부정한 정사 )- 검색효율문제 발생 (긴 단어의 경우 … )
Storage ManagerStorage Manager
DOC File
Index
B+ tree onDocId
url title body
url title body
url title body
url title body
Document Header- 검색 대상이 되는 문서의 내용을 저장- 원하는 문서의 빠른 access를 위해 문서의 ID에 대해 index를 사용하여 access
INV File
Index
B+ tree onterm
DocId DocId DocId
DocId DocId DocId
DocId DocId
DocId
DocId
DocId
DocId
DocId
Inverted List- 문서내의 각 단어 (term)들에 대해 그단어가 나타난 문서의 DocId들의 리스트를 저장- 원하는 단어의 리스트 데이터의 access를 위해 각 단어들에 대해 index를 사용하여 access
CompressionCompression
압축속도 비교- 압축시 I/O Time 감소 , CPU Time 증가- 검색속도는 I/O 시간이 좌우 (?)- CPU Time Dependent Operation
압축적용- CPU 속도 증가- 압축적용시 저장공간 50% 이상 Save- 특정환경에서 색인 /검색 속도 증가- 검색시 압축알고리즘 적용 필요
Query Processor (1)Query Processor (1)
2. Match Words3. Merge Results
1. Convert to tree Struct.
4. Rank Results
사용자
질의
n-ary tree structure
Storage Manager
word
word
word
word
word INV FileIndex
B+ tree onterm
B+ tree onreversed term
PosInvHdr Pos Pos
PosInvHdr Pos Pos
PosInvHdr Pos
PosInvHdr
Query Processor (2)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 에 의해 결정
ApplicationApplication
디렉토리 검색 웹검색
- 대용량 & Static Data 검색 신문검색
- 대용량 Multi DB 검색- Real Time Indexing
이미지 /사운드 검색- Trivial & Heuristic
서치센타 서비스
검색엔진 발전방향검색엔진 발전방향 자연어 검색
- 색인 및 구문분석을 통한 자연어검색 => X- 벡터 / 확률모델방식 검색알고리즘 => O- Relavance Feedback, Query Expansion 적용
개인화- Information Filtering- Social Filtering
대용량화- 검색문서수 증가 , 처리문서수 증대- 네트워크 분산 및 전문 DB 검색방식 확대