엘라스틱서치는 Lucene 기반의 검색 엔진입니다. 자바를 기반으로 만들어진 오픈소스 소프트웨어이며, REST API를 통해 조작할 수 있습니다.
데이터 검색, 분석하고 저장 형식으로는 JSON 형태를 사용합니다.
JSON형태 data 사용으로 NoSQL DB의 특성을 가지고 있습니다.
Apach Lucene: 자바 언어로 이루어진 오픈소스 정보검색 라이브러리를 말합니다.
- NRT(Near Realtime) : 문서가 검색 가능해지는 시점까지 약간의 대기시간이 필요합니다.
- 역인덱싱 : 키워드를 통하여 문서를 찾아내는 방식입니다.
- 분산 환경 : 데이터를 샤드(shard)라는 단위로 분산하여 빠르게 처리합니다.
- 제한된 기능 : Elasticsearch에는 update기능이 없습니다. 데이터를 삭제하고, 새로운 데이터를 다시 저장함으로써 update기능을 구현합니다.
- NoSQL : Elasticsearch는 검색엔진이지만, document형태의 데이터를 저장하여 NoSQL형태의 특징을 함께 가지고 있습니다.
NoSQL DB와 RDB는 사용되는 용어가 달라집니다. 우리에게 익숙한 RDB와 Elasticsearch의 용어를 비교해 보겠습니다.
엘라스틱서치 | 관계형 데이터베이스 |
---|---|
인덱스 | 데이터베이스 |
샤드 | 파티션 |
타입 | 테이블 |
문서 | 행(Column) |
필드 | 열(Rows) |
매핑 | 스키마 |
Query DSL | SQL |