이 글의 내용은 에이콘 출판사의 일래스틱서치 고급 기능의 개념과 활용(바디 딕시트 지음, 김용환 옮김) 도서를
학습하며 정리한 내용입니다.
들어가기에 앞서 알아두어야 할 기본지식
Elasticsearch를 공부하다보면 API 문서 예제가 CURL로 실행해 볼 수 있도록 제공한다.
그렇다면, CURL은 무엇인가? -> HTTP 프로토콜로 서버와 통신하기 위한 Command Line 기반 유틸로 생각하면 될 것 같다 (elasticsearch 예제에서는 이정도의 짧은 정의를 내렸다 더 많은 프로토콜을 제공하며 라이브러리도 제공함)
릴리스
- 2014년 1.x 버전
- 2016년 5.x 버전
Elasticsearch
- NoSQL 저장소, 저장, 검색 유틸리티로 사용
- 로그 분석 툴로도 인기
- 인덱스 작성 및 검색에 전체 텍스트 검색 라이브러리인 아피치 루씬(Apache Lucene)을 사용
- 데이터 저장을 인덱싱(indexing)이란 용어로 사용, 인덱스와 인덱싱 혼용하지 않도록 주의
루씬 소개
- 일래스틱서치의 작동 방식, 특히 저장 및 쿼리 처리와 관련된 작업을 완전히 이해하려면 루씬 라이브러리의 작동 방식을 이해하는 것이 중요
- 일래스틱서치는 내부적으로 루씬을 사용해 도규먼트 저장을 처리
- 루씬 라이브러리는 저장된 도규먼트를 검색할 때 사용
- 자바로 작성된 성숙한 오픈소스이며 고성능과 확장성을 갖춘, 가볍지만 강력한 라이브러리
- 루씬의 핵심 기능은 종속성 없는 자바 라이브러리 단일 파일로 제공된다는 것
- 맞춤법 검사, 하이라이트 표시 등 확장 기능 제공
루씬 인덱스 자세히 살펴보기
- 도큐먼트(document): 저장과 검색에 사용되는 하나 이상의 필드를 포함하는 주요 데이터, 루씬에서 가져온 데이터가 들어 있다
- 필드(field): 이름과 값의 두 부분으로 구성된 도큐먼트 섹션
- 단어(term): 텍스트에서 단어를 나타내는 검색 단위
- 토큰(token): 필드의 텍스트에서 여러개로 나타나는 단어. 단어 텍스트, 시작과 종료 오프셋(offset), 타입(type)으로 구성