엘라스틱 서치 개념

yoon__0_0·2024년 7월 22일
0

이어드림 수업

목록 보기
100/103

검색 시스템

검색시스템이란?

  • 대용량 데이터를 기반으로 신뢰성 있는 검색 결과를 제공하기 위해 검색 엔진을 기반으로 구축된 시스템
  • 검색 엔진 : 정보를 수집해 검색 결과를 제공하는 프로그램
  • 엘라스틱 서치는 엄밀히 말하면 검색 엔진에 해당하지만, 이를 이용하여 검색 시스템을 구축 가능

검색 시스템의 구성 요소

1) 수집기

  • 웹사이트 등에서 필요한 데이터를 수집하는 프로그램
    • ex) 크롤러, 스파이더, 웹로못 등
  • 파일, DB, 웹페이즈 등 웹상의 대부분의 정보가 수집 대상
  • 파일의 경우 수집기가 파일명, 파일 내용, 파일 경로 등의 정보를 수집하고, 저장시 -> 검색 엔진이 저장된 정보를 검색하고 사용자 질의에 답할 수 있음.

2) 스토리지

  • 데이터를 저장하는 물리적 저장소
  • 색인한 데이터를 보관

3) 색인기

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

4) 검색기

  • 역색인 구조에서 일치하는 문서를 찾아서 결과 반환
  • 유사도 기반 검색 순위 알고리즘 판단
  • 사용자 질의에서 형태소 분석기를 이용해 사용자 질의에서 유의미한 용어 추출해 검색
  • 따라셔, 사용하는 형태소 분석기에 따라 검색 품질이 달라짐

ES vs RDB

용어

ESRDB
인덱스(Index)데이터베이스(DB)
샤드(Shard)파티션(Partition)
타입(Type)테이블(Table)
문서(Document)행(Row)
필드(Field)열(Column)
매핑(Mapping)스키마(Schema)
Query DSLSQL

기능

기능ESRDB
데이터 조회GETSELECT
데이터 생성PUTINSERT
업데이트, 조회POSTUPDATE, SELECT
데이터 삭제DELETEDELETE
인덱스 정보확인HEAD--

ES 의 장단점

장점

  • 오픈소스
  • 전문(full text) 검색
  • RESTful API : 엘라스틱 서치는 HTTP 기반의 RESTful API를 지원하고 응답에도 JSON형식을 사용하기 때문에 플랫폼이 무관함
  • 멀티테넌시 : 서로 상이한 인덱스일지라도 검색할 필드명만 같으면 여러개의 인덱스를 한번에 조회할 수 있음.
  • 역색인 기능 (inverted index) : 찾기 쉽도록

단점

  • 실시간이 아니라, 1초 정도 뒤에 검색 가능 (준실시간)
  • 트랜잭션과 롤백 기능을 제공하지 않아 데이터 손실 위험이 있음
  • 데이터 업데이트 제공하지 않아, 업데이터 요청이 있을시, 기존 문서를 삭제하고 변경된 내용으로 새로운 문서 생성

ELK

  • 엘라스틱 스택

  • 엘라스틱 스택은 카프카, 스파크 등과 같이 결합해서 사용할 수 있음.

  • 아래 사진은 예시이고, 다른 방법으로도 사용 가능

profile
신윤재입니다

0개의 댓글