🔍 Elasticsearch 학습 홈
"검색은 왜 빠른가?"의 답인 역색인부터, Lucene 세그먼트·샤딩·Analyzer·집계·운영 트러블슈팅까지 — 검색 엔진의 심장을 움직이는 그림으로 배웁니다.
먼저 큰 그림 — 문서 하나가 검색되기까지
Elasticsearch의 모든 것은 이 한 장의 그림에서 출발합니다. 문서가 들어와 토큰으로 분해되고 역색인(inverted index)에 기록되며, 검색 질의도 같은 경로를 거쳐 그 역색인과 매칭됩니다. 재생 버튼을 눌러보세요.
JSON 문서가 REST API로 도착합니다. "Quick Brown Fox"라는 제목을 가진 문서입니다.
Analyzer가 문자열을 소문자화하고 토큰으로 분해합니다: [quick] [brown] [fox]. 원문 그대로가 아니라 토큰이 저장 단위입니다.
각 토큰(term)이 "이 term은 어느 문서에 있다"는 역색인에 기록됩니다. 책 뒤의 '찾아보기'와 같은 구조입니다.
이번엔 사용자가 "Brown FOX!"를 검색합니다. 대문자와 느낌표가 섞여 있네요.
질의도 색인과 같은 Analyzer를 통과해 [brown] [fox]가 됩니다. 색인과 검색이 같은 언어로 말하게 되는 것이죠.
역색인에서 두 term 모두 doc1을 가리킵니다 → 교집합 doc1 반환! 원문을 한 글자도 스캔하지 않고 찾아냈습니다. 이것이 Elasticsearch가 빠른 이유입니다.
① 역색인과 검색 엔진의 정체성(1장) → ② 분산 구조: 클러스터·Lucene·샤드(2~4장) → ③ 검색의 핵심: 매핑·Analyzer·Query DSL·집계(5~8장) → ④ 운영: 인덱싱 전략·안티패턴·트러블슈팅(9~11장)
챕터 목록
기초 — 검색 엔진이라는 다른 세계
01 · Elasticsearch 개요 기초
RDB의 LIKE 검색과 역색인은 무엇이 다른가. NRT(near real-time)의 의미, Elastic Stack의 구성, 분산 시스템의 핵심 원칙.
02 · 클러스터 아키텍처 중급
노드 역할(master/data/coordinating), cluster state, 마스터 선출 쿼럼, 요청이 샤드로 fan-out되는 Query-then-Fetch 흐름.
03 · Lucene 내부 구조 고급
세그먼트는 왜 불변인가. in-memory buffer → refresh → segment → flush → merge 라이프사이클과 translog의 내구성 보장.
04 · 인덱스와 샤드 중급
인덱스=논리, 샤드=물리. 라우팅 공식, primary/replica 배치, 노드 장애 시 replica 승격, 샤드 사이징과 oversharding.
검색의 핵심 — 원하는 문서를 정확히 찾기
05 · 매핑과 필드 타입 중급
text vs keyword — 가장 흔한 실수. dynamic mapping의 함정, multi-fields, nested의 필요성, 무중단 reindex 전략.
06 · Text Analysis — Analyzer 중급
char filter → tokenizer → token filter 파이프라인. 한국어 형태소 분석(Nori), 커스텀 analyzer 설계.
07 · Query DSL 중급
match vs term, bool 쿼리의 must/filter/should, query context vs filter context, BM25 스코어링.
08 · Aggregations — 집계 중급
metric/bucket/pipeline 집계, doc values 기반 동작 원리, cardinality의 근사 계산, 집계 메모리 관리.
운영 — 프로덕션에서 살아남기
09 · 인덱싱 전략 고급
bulk API, refresh_interval 튜닝, 시계열 인덱스와 rollover, ILM으로 hot/warm/cold 자동화.
10 · 안티패턴 모음 고급
oversharding, deep pagination, wildcard 남용, _source 끄기 — 현장에서 반복되는 실수와 올바른 대안.
11 · 모니터링과 트러블슈팅 고급
클러스터 health(RED/YELLOW/GREEN), 진단 API, unassigned shards, 디스크 watermark 사고 대응.
추천 학습 경로
🌱 입문 코스
검색 엔진이 처음이라면: 1장 → 4장 → 5장 → 7장. 역색인 개념을 잡고, 인덱스/샤드 모델과 매핑을 이해한 뒤 쿼리를 써봅니다.
🔎 검색 품질 코스
검색 결과를 개선하고 싶다면: 5장 → 6장 → 7장 → 8장. 매핑·Analyzer·Query DSL·집계로 이어지는 검색 파이프라인 집중 코스.
⚙️ 운영자 코스
이미 운영 중인 클러스터가 있다면: 2장 → 3장 → 4장 → 9~11장. 내부 동작을 이해하고 사고 예방·대응으로 나아갑니다.
각 장의 애니메이션을 먼저 끝까지 재생하고 본문을 읽은 뒤, 마지막 퀴즈로 확인하세요. 챕터 하단의 "이 장 완료로 표시" 버튼을 누르면 진도가 저장됩니다.
원문 저장소 자료
이 파트는 jaero0725/elasticSearch-guide 저장소의 문서를 초보자 눈높이로 재구성한 것입니다. 저장소에는 챕터 원문 외에도 실습 자료가 있습니다.
🧪 examples
바로 실행해 볼 수 있는 요청 예제 모음. examples 디렉터리 →
🚑 troubleshooting
실제 장애 시나리오와 대응 절차. troubleshooting 디렉터리 →
📇 cheatsheets
운영 명령·API 치트시트. cheatsheets 디렉터리 →