Elasticsearch

[Elasticsearch] 검색 시스템

데이터 세상 2022. 1. 13. 22:30

검색 시스템

검색엔진(Search Engine)

웹에서 정보를 수집해 검색 결과를 제공하는 프로그램

검색 시스템(Search System)

대용량 데이터를 기반으로 신뢰성 있는 검색 결과를 제공하기 위해 검색엔진을 기반으로 구축된 시스템을 통칭

수집기

  • 크롤러(crawler), 스파이더(spider), 웜(worms), 웹 로봇(web robot) 등으로도 불림
  • 웹사이트, 블로그, 카페 등 웹에서 필요한 정보를 수집하는 프로그램
  • 파일, 데이터베이스, 웹페이지 등 웹상의 대부분의 정보가 수집 대상이 됨

스토리지

  • 데이터베이스에서 데이터를 저장하는 물리적인 저장소
  • 검색엔진은 색인한 데이터를 스토리지에 보관

색인기

  • 다양한 형태소 분석기를 조합해 정보에서 의미가 있는 용어를 추출하고 검색에 유리한 역색인 구조로 데이터 저장

검색기

  • 사용자 질의를 입력받아 색인기에서 저장한 역색인 구조에서 일치하는 문서를 찾아 결과로 반환
  • 질의와 문서가 일치하는지는 유사도 기반의 검색 순위 알고리즘으로 판단
  • 형태소 분석기를 이용해 사용자 질의에서 유의미한 용어를 추출해 검색

사용하는 형태소 분석기에 따라 검색 품질이 달라진다.

 

관계형 데이터베이스(RDBMS)에서 모든 데이터는 중복을 제거하고 정형 데이터로 구조화해 행과 열로 구성된 데이터를 저장한다. SQL문을 이용해 원하는 정보의 검색이 가능한데 텍스트 매칭을 통한 단순한 검색만 가능하다.

검색엔진은 데이터베이스에서는 불가능한 비정형 데이터를 색인하고 검색할 수 있다. 형태소 분석을 통해 자연어 처리가 가능해지고 역색인 구조를 바탕으로 빠른 검색 속도를 보장한다.

 

ElasticSearch RDBMS
index Database
Shard Partition
Type Table
Document Row
Field Column
Mapping Schema
Query DSL SQL

 

검색 서비스(Search Service)

검색엔진을 기반으로 구축한 검색 시스템을 활용해 검색 결과를 서비스로 제공


References

반응형