최근 수정 시각 : 2024-11-16 17:46:50

엘라스틱 서치


1. 개요2. 특징3. 역색인4. 관련 문서

1. 개요

엘라스틱 서치는 루씬(Lucene)을 기반으로 한 오픈소스 검색 엔진이다. 자바를 이용하여 개발되었으며, RESTful API를 제공하는 것이 특징이다. 입출력에 JSON을 사용하여 이용이 편리하다.

2. 특징

  • 설치 과정이 간단한 편, 우분투같은 데비안 기반 운영체제면 기본패키지관리자로 쉽게 설치 가능
  • 노드라고 불리는 프로세스 단위로 구성되어 있는데, 확장이 필요하다면 그저 새 노드를 실행하고 기존의 노드와 연결하여 scale-out이 매우 간단함
  • 데이터를 저장한 뒤 검색하기 위해 재실행과 같은 과정이 필요없음, 인덱싱만 끝나면 검색이 가능
  • 오픈소스이므로, 다양한 기능의 플러그인이 많이 나와있음 한글로 된 문서를 잘 검색하기 위해서는 형태소 분석이 필요한데, 이 또한 플러그인 지원
  • 하나 이상의 노드가 실행되면서, 죽은 노드가 있을 경우 자동으로 감지하여 삭제하고 다른 노드에 맡김. 이렇기에 매우 안정적인 서비스를 보장
  • ELK 스택을 구성하여 활용할 수 있음

3. 역색인

엘라스틱 서치를 RDBMS와 차별화하는 가장 큰 특징. RDBMS에서는 필드에 B+트리 혹은 해시 인덱스를 걸어 검색속도를 상향시킨다. 그럼에도 텍스트 검색을 할 때 모든 행에 대해 패턴매칭을 피할 수 없다. 반면 ES는 문자열을 먼저 텀 단위로 쪼갠다. 텀은 해당 단어를 포함하는 문서의 ID와 저장 위치를 참조하게 되기 때문에 쿼리 조건의 키워드를 포함하는 문서를 효율적으로 찾을 수 있다.

4. 관련 문서