구글, 네이버 등으로 대표되는 검색엔진은 방대한 데이터와 정보를 구조화해 원할 때 쉽게 정보를 찾을 수 있도록 도와준다. 검색엔진은 크게 수집, 색인, 순위 결정 3가지 요소로 작동된다. 흔히 봇이라고도 하는 웹크롤러가 수많은 웹페이지를 찾아다니며 해당 문서의 링크와 단어, 문구 등의 주요 정보들을 기록하고 저장한다. 이 수집 작업 중에 각 문서의 정보에 가중치(weight)와 연관도(relevance)를 부여해 저장하기도 한다. 이렇게 정리된 정보를 실제 사용자가 검색할 때 불러다 쓰는데 이를 인덱스 혹은 색인(索引)이라고 한다.
색인(索引)은 “索” 찾을 색, “引” 끌인 으로 특정 항목이나 단어를 빨리 찾도록 만든 목록을 의미한다. 책의 맨 뒤에 찾아보기로 해서 특정 용어나 내용이 몇 페이지에 있는지 참고할 수 있도록 만들어 놓은 페이지와 비슷한 개념이다. 한글 문서와 정보의 경우 어미와 조사에 따라 단어의 형태적 변형이 다양하게 일어나기 때문에 형태소 분석이 매우 중요하다. 해당 문서의 주요한 내용을 요약하려면 불필요한 정보들을 제거하고 핵심이 되는 내용만 가지고 있어야 하는데 형태소 분석기의 품질에 따라 색인되는 정보의 품질이 정해질 정도로 중요한 역할을 한다.
순위 결정은 알고리즘을 활용해 특정 검색어에 수많은 문서와 정보들 중 어떤 것들을 먼저 보여주고 나중에 보여주느냐에 대한 순서를 정해주는 것이다. 이를 랭킹이라고 하는데 포털, 전자상거래, 커뮤니티 등 비즈니스 특성에 따라 다양한 정보와 항목들을 결합해 점수화하고 이에 따라 순위를 결정짓는 랭킹 알고리즘을 만들 수 있다.
봇, 로봇, 스파이더, 웹크롤러 등 다양한 이름을 가진 크롤러는 정보를 수집하는 프로그램이다. 지구 상에 있는 수많은 웹페이지들을 돌아다니며 정보를 수집하는데, 자신이 방문한 페이지에 걸려 있는 모든 링크들까지 확장해서 정보를 모은다. 또 이미 방문했거나 수집되어 있는 정보라도 일정 기간을 정해 지속적으로 재방문해 정보의 변화 여부를 확인해 최신 상태로 업데이트를 한다. 크롤러는 웹페이지에 있는 텍스트, 사진, 영상, URL 등 다양한 형태의 정보를 수집해 검색이 이루어질 수 있도록 색인에 저장한다.
웹크롤러가 빠짐없이 정보를 수집하고 정보를 최신 상태로 유지하기 위해서는 URL 관리가 중요하다. 웹크롤러는 내부에 방문한 URL 리스트와 방문해야 할 URL 리스트를 가지고 있어서, 신규 URL이 들어오면 이 리스트들과 비교해 중복 여부를 체크하고 중복되지 않은 URL이면 방문할 리스트에 넣어 크롤러가 추후 방문해 정보를 수집한다. 이 원리로 크롤러는 끊임없이 계속 확장해 정보를 수집해 나갈 수 있다.
검색엔진과 웹크롤러는 모두 웹에서 정보를 수집하지만 검색엔진은 사용자가 검색어를 입력하면, 웹페이지를 분석하여 검색 결과를 제공하는 시스템이고 웹크롤러는 웹사이트에서 정보를 수집하는데 사용되는 프로그램이다. 즉, 검색엔진은 사용자가 검색하는 내용에 대해 적절한 결과물을 제공하는 역할을 하고, 웹크롤러는 정보를 수집하는 도구로 검색엔진의 일부 기술을 사용한다. 검색엔진은 웹크롤러가 수집한 정보를 바탕으로 사용자에게 검색 결과를 제공하기 때문에, 웹크롤러는 검색엔진의 가장 중요한 핵심 기술 중 하나이다.