Elasticsearch
🔎 Elasticsearch란?
정의
Elasticsearch는 Apache Lucene 기반의 분산 검색 및 분석 엔진이다. 대용량 데이터를 빠르게 검색하고 집계할 수 있도록 설계되었다.
⚡ Elasticsearch의 주요 특징
- 대용량 데이터를 빠르게 검색하고 분석할 수 있다.
- 실시간 검색에 적합하다.
- RESTful API를 사용한다.
- JSON 문서를 기반으로 데이터를 저장한다.
- 텍스트 분석과 복합 Query를 지원한다.
🧭 RDBMS와 Elasticsearch
| 항목 | RDBMS | Elasticsearch |
|---|---|---|
| 저장소 | Database | Index |
| 단위 | Table | Type |
| 실제 데이터 | Row | Document |
| 필드 | Column | Field |
| 검색 방식 | Index / SQL | Analyze / Query DSL |
| 기본 키 | Primary Key | _id |
| 구조 | Schema | Mapping |
| 관계 | Relational | Parent/Child |
| 조회 | SQL | Query DSL |
차이점
RDBMS는 정합성과 관계에 강하고, Elasticsearch는 검색과 분석에 강하다.
🏗️ Elasticsearch 아키텍처 및 용어

Cluster
- 여러 노드가 모여 하나의 클러스터를 이룬다.
- 데이터 저장과 조회를 분산 처리한다.
Node
| Node Name | 역할 |
|---|---|
| Master-eligible | 클러스터 상태 관리와 메타 정보 반영 |
| Data | CRUD와 검색 처리 |
| Ingest | 데이터 변환과 전처리 파이프라인 실행 |
| Coordination only | 요청 분산과 응답 처리 |
Index / Shard / Replica
- Index는 RDBMS의 database에 대응한다.
- Shard는 index를 분산하기 위한 단위이다.
- Replica는 shard의 복제본이다.
- Sharding은 데이터를 분산 저장하기 위한 방식이다.
- Replica는 가용성과 검색 성능 향상에 도움이 된다.
용어 정리
Elasticsearch에서는 문서 중심 구조를 이해하는 것이 중요하다. 테이블보다 문서와 인덱스 관점으로 생각하면 구조가 더 잘 보인다.
🛠️ 함께 알아두면 좋은 개념
- Mapping
- Analyzer
- Query DSL
- Full-text Search
- Aggregation
[!important] 주의 Elasticsearch는 검색에 강하지만, 관계형 데이터처럼 복잡한 조인에 최적화된 구조는 아니다.
댓글남기기