Elastic Search

Ch01. 검색 시스템 이해하기

webmaster 2025. 9. 2. 23:36
728x90

검색 시스템의 이해

검색 서비스 > 검색 시스템 > 검색 엔진

  • 검색 엔진: 광활한 웹에서 정보를 수집해 검색 결과를 제공하는 프로그램으로 검색 결과로 제공되는 데이터의 특성에 따라 구현 형태가 달라진다.
  • 검색 시스템: 대용량 데이터를 기반으로 신뢰성 있는 검색 결과를 제공하기 위해 검색엔진을 기반으로 구축된 시스템을 통칭한다.
  • 검색 서비스: 검색 엔진을 기반으로 구축한 검색 시스템을 활용해 검색 결과를 서비스로 제공한다

검색 시스템 구성 요소

검색 시스템 요소

  • 수집기: 웹에서 필요한 정보를 수집하는 프로그램(크롤러, 스파이더, 윔, 웹 로봇)
  • 스토리지: 데이터베이스에서 데이터를 저장하는 물리적인 저장소. 검색엔진은 색인한 데이터를 스토리지에 보관
  • 색인기: 다양한 형태소 분석기를 조합해 정보에서 의미가 있는 용어를 추출하고 검색에 유리한 역색인 구조로 데이터를 저장한다.
  • 검색기: 사용자 질의를 입력받아 색인기에서 저장한 역색인 구조에서 일치하는 문서를 찾아 결과로 반환한다.
    • 형태소 분석기를 이용해 사용자 질의에서 유의미한 용어를 추출해 검색한다. 
    • 사용하는 형태소 분석기에 따라 검색 품질 결정

관계형 DB와 차이점

ES 관계형 DB
인덱스 데이터베이스
샤드 파티션
타입 테이블
문서
필드
매핑 스키마
QueryDSL SQL

관계형 DB의 단점: 텍스트를 여러 단어로 변형하거나 여러 개의 동의어나 유의어를 활용한 검색은 불가능하다.

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

 

Elastic Search에서 사용하는 기능 비교

ES(Http Method) 관계형 DB 기능
GET SELECT 데이터 조회
PUT INSERT 데이터 생성
POST UPDATE, SELECT 인덱스 업데이트, 데이터 조회
DELETE DELETE 데이터 삭제
HEAD   인덱스의 정보 확인

 

Elastic Search는 구조화되지 않은 비정형 데이터도 검색이 가능하다. 구조화되지 않은 데이터까지 스스로 분석해 자동으로 필드를 생성하고 저장한다.

검색 시스템과 Elastic Search

엘라시틱서치 장점

  • 오픈소스 검색 엔진
  • 전문 검색
    • 내용 전체를 색인해서 특정 단어가 포함된 문서를 검색
  • 통계 분석
    • 키바나 연결 시 실시간 로그를 시각화 가능하다.
  • 스키마리스
  • RestFul API
  • 멀티테넌시
    • 서로 상이한 인덱스라도 검색한 필드명만 같다면 여러 개의 인덱스를 한번에 조회 가능
  • Document-Oriented
  • 역색인
    • 종이책의 마지막 페이지에서 제공하는 색인 페이지와 비슷하게 제공되는 특수한 데이터 구조
  • 확장성과 기용성

엘라시틱서치 단점

  • 실시간이 아님
    • 일반적으로 색인된 데이터는 통산 1초 뒤에 검색이 가능(내부적으로 커밋/플러시 같은 과정을 거치기 때문)
  • 트랜잭션과 롤백 기능 제공하지 않는다
    • 최악의 경우 데이터 손실의 위험이 있다.
  • 데이터의 업데이트를 제공하지 않는다.
    • 업데이트 시 기존 문서를 삭제하고 변경된 내용으로 새로운 문서를 생성하는 방식을 사용
728x90