Elasticsearch는 Elastic이 개발한 분산 검색 및 분석 엔진이다. Apache Lucene 기반으로 역색인(Inverted Index)을 사용해 대용량 데이터에서 빠른 전문 검색이 가능하다.
핵심 개념
| 개념 | 관계형 DB 유사 |
|---|
| 인덱스 | 데이터베이스 |
| 도큐먼트 | 행(Row) |
| 필드 | 열(Column) |
| 매핑 | 스키마 |
bash
# 도큐먼트 추가
PUT /products/_doc/1
{
"name": "MacBook Pro",
"description": "Apple의 고성능 노트북",
"price": 2499000,
"category": "laptop"
}
# 전문 검색
GET /products/_search
{
"query": {
"match": {
"description": "고성능 노트북"
}
}
}
# 복잡한 쿼리
GET /products/_search
{
"query": {
"bool": {
"must": [{"match": {"category": "laptop"}}],
"filter": [{"range": {"price": {"lte": 3000000}}}]
}
},
"sort": [{"price": "asc"}]
}
Filebeat/Logstash → Elasticsearch → Kibana
(로그 수집) (저장·검색) (시각화)
관련 개념
- •Redis — 실시간 캐시 vs Elasticsearch 전문 검색
- •Kafka — Kafka → Elasticsearch 파이프라인
참고문헌
- •Elasticsearch 공식 문서: elastic.co/docs