웹 검색엔진은 페이지를 발견·수집하고, 내용을 분석해 색인을 만든 뒤, 사용자의 검색어에 맞는 문서를 찾아 순위를 정합니다. 역색인은 검색어에 해당하는 단어가 어느 문서에 있는지 빠르게 찾기 위한 자료구조이며, 검색 결과의 순위는 관련성 등 여러 기준으로 결정합니다.
Google·Bing·네이버 등의 공개 설명, 정보검색 교재와 논문, 직접 살펴볼 수 있는 구현 자료를 모았습니다. 서비스가 공개한 동작 개요와 소스코드로 확인할 수 있는 구현의 범위를 구분하고, 기본 원리부터 크롤링·색인·랭킹·평가 순서로 읽을 수 있습니다.
검색 서비스가 공개한 원리
-
Google 검색의 작동 방식에 대한 상세 가이드 — Google 검색 센터 · 한국어
Googlebot의 페이지 발견·크롤링·렌더링, 중복 문서 처리와 색인 생성, 검색결과 제공의 흐름을 설명합니다.
-
Google 검색 순위 시스템 가이드 — Google 검색 센터 · 한국어
PageRank·BERT·신경망 검색·최신 정보·중복 제거 등 Google이 공개한 순위 관련 시스템의 역할을 설명합니다.
-
How Bing delivers search results — Microsoft · 영문
Bingbot의 수집과 색인 생성, 기계학습을 이용한 순위 결정과 관련성·품질·최신성 등의 주요 판단 기준을 설명합니다.
-
네이버 웹 검색의 기초 — 네이버 서치어드바이저 · 한국어
사이트 발견·정보 수집·검색 반영의 원리와 웹마스터도구 활용을 소개하는 PDF 교육 자료를 제공합니다.
-
Where do DuckDuckGo search results come from? — DuckDuckGo · 영문
자체 크롤러·색인과 외부 제공 자료를 함께 사용하며 일반 링크·이미지 결과의 상당 부분을 Bing에서 받는다고 설명합니다.
-
Brave Search Crawler — Brave · 영문
Brave의 페이지 발견·색인을 위한 크롤러와 Googlebot의 수집 허용 여부를 반영하는 접근 방침을 설명합니다.
역색인과 랭킹의 기초
-
Introduction to Information Retrieval — Manning·Raghavan·Schütze · 영문
토큰과 역색인, 색인 구축·압축, 점수 계산, 웹 크롤링과 링크 분석을 다루는 정보검색 교재입니다.
-
An example information retrieval problem — Introduction to Information Retrieval · 영문
단어별 문서 목록인 포스팅 리스트와 역색인을 예시로 설명하고, 불리언 검색과 정확률·재현율의 기초를 소개합니다.
-
The anatomy of a large-scale hypertextual Web search engine — Brin·Page · 영문 PDF
1998년 초기 Google의 PageRank·링크 정보 활용과 수집·색인·검색 구조를 설명하는 논문으로, 당시 구현을 공부할 수 있습니다.
웹 수집과 크롤러 구현
-
RFC 9309: Robots Exclusion Protocol — IETF · 영문
robots.txt의 규칙 해석·경로 매칭·응답 처리·캐시 기준을 정의하며, 이 규칙이 접근 권한을 부여하는 수단은 아니라는 점을 명시합니다.
-
NutchTutorial — Apache Nutch · 영문
시작 URL과 수집 범위 설정, 수집·파싱·중복 처리 과정을 거쳐 결과를 Solr에 색인하는 실습을 제공합니다.
색인과 검색을 코드로 구현하기
-
IndexFiles.java — Apache Lucene · 영문 코드
파일을 읽어 문서와 필드를 만들고 분석기와 IndexWriter로 검색용 색인에 기록하는 예제입니다.
-
SearchFiles.java — Apache Lucene · 영문 코드
저장된 색인을 열고 검색어를 해석한 뒤 IndexSearcher로 결과를 조회하고 페이지별로 출력하는 예제입니다.
-
Solr Tutorials — Apache Solr · 영문
컬렉션 생성·문서 색인·검색·패싯부터 벡터 검색과 SolrCloud까지 단계별로 실습하는 공식 튜토리얼입니다.
BM25와 벡터 검색을 결합하기
-
Ranking and reranking — Elastic · 영문
Elasticsearch의 BM25·벡터 검색으로 후보를 찾고 RRF로 결과를 결합하거나 재랭킹하는 구조를 설명합니다.
-
Hybrid search — OpenSearch · 영문
키워드 검색과 의미 검색을 결합하고, 검색 파이프라인에서 점수 정규화 또는 순위 기반 결합을 적용하는 방법을 안내합니다.
-
SPTAG — Microsoft · 영문
Microsoft Research와 Bing이 공개한 근사 최근접 이웃 검색 라이브러리로 벡터 색인 구축·조회와 분산 제공 코드를 살펴볼 수 있습니다.
검색 품질 평가
-
Evaluation in information retrieval — Introduction to Information Retrieval · 영문
평가용 문서 집합과 관련성 판정, 검색 결과 집합·순위의 평가 지표와 사용자 관점의 품질을 설명합니다.