Elasticsearch는 텍스트, 숫자, 위치 기반 정보, 정형 및 비정형 데이터 등 모든 유형의 데이터를 위한 검색 및 분석 엔진으로 분산형 및 개방형을 특징으로 합니다.
Elasticsearch는 Apache Lucene을 기반으로 구축 되었습니다.
방대한 양의 데이터를 신속, NRT(Near Real Time)으로 저장, 검색, 분석할 수 있습니다.
또한 클러스터로 구성되어 있기 때문에 데이터 용량이 증가했을 때 클러스터를 추가하며 용량에 대처하기가 수월합니다.
간단하게 정의하자면 엘라스틱서치는 검색 엔진(search engine)을 위한 오픈소스 기술입니다.
오픈소스인 덕에 누구나 내려받을 수 있고 내부코드를 보고 개선할 수 있습니다. 그 덕에 많은 개발자가 필요에 따라 만든 플러그인이 장점입니다.
아파치 루씬은 자바로 개발된 검색 서비스용 라이브러리입니다. 루씬은 전문 텍스트 검색(Full text search)에 특화되어 있어 문서가 색인될 때부터 검색 가능해질 때까지의 대기시간이 1초 정도로 매우 짧습니다. 덕분에 검색시간이 매우 빠르다는 장점이 있습니다.
엘라스틱서치는 REST API 형태로 조작할 수 있습니다. 즉, 검색 및 분석 결과를 API형태로 제공합니다. 어플리케이션을 개발할 때 API 종류만 알면 쉽게 활용할 수 있다는 장점이 있습니다.
엘라스틱서치는 JSON 형식으로 모든 요청 및 응답 문서를 표현합니다. JSON형식을 이용하면 복잡한 구조화된 형태로 읽기 쉽게 표현할 수 있습니다. 덕분에 텍스트, 숫자, 위치 기반 정보 등 정형, 비정형 데이터를 대상으로 분석 및 검색이 가능합니다.
클러스터 기반이기 때문에 수백개, 수천개의 서버 확장이 가능하고 확장된 서버에 데이터를 분산하여 벙렬처리할 수 있기 때문에 검색 대상의 용량이 크더라도 보다 빠르게 분석, 검색할 수 있습니다.