TL;DR
  • Index/Document/Field: RDB의 Table/Row/Column에 대응
  • Shard/Replica: 데이터 분산과 복제의 기본 단위
  • Analyzer/Tokenizer: 텍스트를 검색 가능한 토큰으로 분해
  • Query/Filter Context: 점수 계산 여부에 따른 검색 방식 구분
  • 알파벳순으로 정렬, 각 용어에서 관련 개념 문서로 링크

빠른 이동: A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | Z

Elasticsearch 핵심 용어를 빠르게 찾아볼 수 있습니다. 상세 설명은 개념 이해 섹션을 참고하세요.

A-E#

Aggregation (집계)#

검색 결과를 그룹화하고 통계를 계산하는 기능. SQL의 GROUP BY와 유사. Bucket/Metric/Pipeline 세 종류. → 집계 개념 | Query DSL

Alias (별칭)#

Index에 부여하는 별명. 무중단 인덱스 전환, 멀티 인덱스 검색에 유용. ILM과 함께 사용. → 인덱싱 전략

Analyzer (분석기)#

텍스트를 Term으로 분해하는 컴포넌트. Character Filter → Tokenizer → Token Filter 순서로 처리. 한글에는 Nori 분석기 사용. → 데이터 모델링 | 한글 검색

Apache Lucene#

Elasticsearch 내부에서 사용하는 오픈소스 검색 엔진 라이브러리. 각 Shard가 하나의 Lucene 인덱스. → 핵심 구성요소

Auto-Expand Replicas#

Node 수에 따라 Replica 수를 자동 조정하는 설정. 0-2 형식으로 최소-최대 지정. → 고가용성

BM25 (Best Matching 25)#

Elasticsearch의 기본 Score 계산 알고리즘. TFIDF 기반. Boosting으로 조절 가능. → 검색 관련성

Bool Query#

must, should, must_not, filter 절을 조합하는 복합 쿼리. AND/OR/NOT 논리 연산 구현. → Query DSL

Boosting#

특정 필드나 조건의 Score에 가중치를 부여하는 기법. 제목에 높은 부스트 값 적용 등. → 검색 관련성

Bucket Aggregation#

데이터를 그룹(버킷)으로 나누는 집계. terms, range, date_histogram 등. SQL의 GROUP BY와 유사. → 집계 개념

Bulk API#

여러 Document를 한 번에 인덱싱하는 API. 성능 향상에 필수. NDJSON 형식 사용. → 인덱싱 전략

Cardinality (집계)#

고유값 개수를 계산하는 Metric Aggregation. SQL의 COUNT(DISTINCT)와 유사. → 집계 개념

CCR (Cross-Cluster Replication)#

원격 클러스터로 데이터를 실시간 복제. 재해 복구(DR), 지역별 읽기에 활용. → 고가용성

Character Filter#

Analyzer의 첫 단계. HTML 태그 제거, 패턴 치환 등 텍스트 전처리. → 데이터 모델링

Cluster (클러스터)#

하나 이상의 Node로 구성된 Elasticsearch 서버 그룹. Master Node가 상태 관리. → 핵심 구성요소 | 클러스터 관리

Cluster Health#

클러스터 전체 상태를 나타내는 지표. Green(정상), Yellow(Replica 미할당), Red(Primary 미할당). → 클러스터 관리

Commit Point#

현재 활성 Segment 목록을 추적하는 메타데이터. 검색 대상 세그먼트 관리. → 핵심 구성요소

Completion Suggester#

빠른 자동완성을 위한 특수 필드 타입. FST(Finite State Transducer) 기반. → 한글 검색

Composite Aggregation#

대용량 데이터의 페이지네이션 집계. after 파라미터로 다음 페이지 조회. → 집계 개념

Coordinating Node#

검색 요청을 받아 Data Node에 분배하고 결과를 병합하는 노드. 모든 노드가 기본적으로 역할 수행. → 클러스터 관리

Cosine Similarity#

두 벡터 간의 각도를 측정하는 유사도. dense_vector 필드의 기본 유사도 방식. → Vector Search

Data Node#

실제 데이터를 저장하고 검색/Aggregation을 수행하는 노드. Shard가 할당됨. → 클러스터 관리

Data Tier (Hot/Warm/Cold)#

데이터 수명주기에 따른 노드 계층. Hot(활발한 쓰기/읽기), Warm(읽기 위주), Cold(가끔 읽기). → 클러스터 관리 | 인덱싱 전략

date_histogram#

시간 간격으로 데이터를 그룹화하는 Bucket Aggregation. 일별/월별 트렌드 분석. → 집계 개념

Decay Function#

거리나 시간에 따라 점수를 감소시키는 함수. linear, exp, gauss 종류. → 검색 관련성

decompound_mode#

Nori 분석기의 복합명사 분해 설정. none/discard/mixed 옵션. → 한글 검색

dense_vector#

벡터 데이터를 저장하는 필드 타입. kNN 검색에 사용. dims, similarity 설정. → Vector Search

Document (문서)#

Elasticsearch에 저장되는 JSON 형태의 데이터 단위. RDB의 Row와 유사. Index 내에 저장됨. → 핵심 구성요소

DSL (Domain Specific Language)#

Elasticsearch Query 작성을 위한 JSON 기반 언어. Bool Query, Match, Term 등 다양한 쿼리 제공. → Query DSL

Dynamic Mapping#

Mapping을 정의하지 않았을 때 Elasticsearch가 자동으로 타입을 추론하는 기능. true/false/strict 설정. → 데이터 모델링

Edge N-gram#

단어의 앞부분부터 N글자씩 토큰을 생성. 자동완성 구현에 사용. → 한글 검색

Embedding (임베딩)#

텍스트나 이미지를 고차원 벡터로 변환하는 과정. Vector Search의 핵심. → Vector Search

exists (쿼리)#

특정 필드가 존재하는 문서를 검색. null이 아닌 값을 가진 문서 필터링. → Query DSL

Explain API#

Score가 어떻게 계산되었는지 상세 분석하는 API. → 검색 관련성

extended_stats#

평균, 합계, 분산, 표준편차 등 확장 통계를 계산하는 Metric Aggregation. → 집계 개념


F-M#

Field (필드)#

Document 내의 개별 데이터 항목. RDB의 Column과 유사. Mapping으로 타입 정의. → 데이터 모델링

Field Data Cache#

text 필드의 정렬/집계를 위해 메모리에 로드되는 캐시. 메모리 사용량 주의. → 성능 튜닝

Field Length Normalization#

짧은 필드에서 일치하면 더 높은 점수를 부여하는 BM25의 요소. → 검색 관련성

Filter Context#

Score 계산 없이 조건 매칭만 수행. 캐싱되어 성능 우수. Query Context와 함께 Bool 쿼리에서 사용. → Query DSL

Flush#

메모리 버퍼의 데이터를 디스크에 영구 저장하는 작업. Translog 초기화. Refresh와 구분. → 인덱싱 전략

Function Score Query#

복잡한 스코어링 로직을 구현하는 쿼리. weight, field_value_factor, Decay Function 등. → 검색 관련성

fuzzy (쿼리)#

오타를 허용하는 검색. fuzziness 옵션으로 편집 거리 지정. AUTO 권장. → Query DSL

Highlighting (하이라이팅)#

검색 결과에서 검색어를 강조 표시. pre_tags, post_tags로 태그 지정. → Query DSL

histogram (집계)#

고정 간격으로 데이터를 그룹화하는 Bucket Aggregation. 가격대별 분포 등. → 집계 개념

HNSW (Hierarchical Navigable Small World)#

kNN 검색에 사용되는 근사 최근접 이웃 알고리즘. m, ef_construction 파라미터로 튜닝. → Vector Search

Hybrid Search (하이브리드 검색)#

kNN 벡터 검색과 키워드 검색을 결합. boost로 가중치 조절. → Vector Search

IDF (Inverse Document Frequency)#

단어가 전체 Document에서 얼마나 희귀한지를 나타내는 지표. BM25의 구성 요소. → 검색 관련성

ILM (Index Lifecycle Management)#

Index의 생성부터 삭제까지 수명주기를 자동 관리. Hot → Warm → Cold → Delete 단계. → 인덱싱 전략

Index (인덱스)#

Document들의 모음. RDB의 Table과 유사. Shard로 분산 저장. → 핵심 구성요소

Index Template#

새 인덱스 생성 시 자동 적용되는 설정 템플릿. index_patterns로 매칭. → 인덱싱 전략

Ingest Node#

인덱싱 전 데이터 전처리를 수행하는 노드. 파이프라인으로 변환 정의. → 클러스터 관리

Inverted Index (역색인)#

TermDocument 위치를 매핑한 자료구조. 빠른 검색의 핵심. → 핵심 구성요소

JVM Heap#

Elasticsearch가 사용하는 Java 힙 메모리. 총 메모리의 50% 권장 (최대 30-31GB). → 성능 튜닝

keyword (타입)#

분석 없이 정확한 값으로 저장되는 문자열 타입. 필터링, 정렬, 집계에 사용. → 데이터 모델링

kNN (k-Nearest Neighbors)#

벡터 유사도 기반 검색. dense_vector에서 가장 가까운 k개 문서를 찾는 알고리즘. → Vector Search

Mapping (매핑)#

DocumentField의 저장/인덱싱 방식을 정의. RDB의 Schema와 유사. Dynamic/Explicit 두 방식. → 데이터 모델링

Master Node#

Cluster 상태를 관리하고 Index 생성/삭제를 담당하는 노드. Data Node와 분리 권장. → 클러스터 관리

match (쿼리)#

가장 일반적인 풀텍스트 검색. Analyzer로 분석 후 검색. operator, minimum_should_match 옵션. → Query DSL

match_phrase (쿼리)#

단어 순서까지 일치해야 하는 구문 검색. slop 옵션으로 단어 간격 허용. → Query DSL

Metric Aggregation#

숫자 데이터의 통계(sum, avg, min, max 등)를 계산하는 집계. → 집계 개념

Multi-field#

하나의 필드를 여러 방식으로 인덱싱. name.keyword 형태로 접근. → 데이터 모델링

multi_match (쿼리)#

여러 필드에서 동시에 풀텍스트 검색. fields에 가중치(^) 지정 가능. → Query DSL


N-R#

NDJSON (Newline Delimited JSON)#

각 줄이 개별 JSON 객체인 형식. Bulk API에서 사용. → 인덱싱 전략

Near Real-Time (NRT)#

Elasticsearch의 검색 특성. 인덱싱 후 기본 1초(Refresh) 후 검색 가능. → 핵심 구성요소

Negative Boosting#

특정 조건의 점수를 낮추는 기법. boosting 쿼리의 negative_boost 사용. → 검색 관련성

Nested (타입)#

배열 내 객체의 관계를 유지하는 필드 타입. Object 타입의 평탄화 문제 해결. → 데이터 모델링

Node (노드)#

Cluster를 구성하는 단일 Elasticsearch 서버. Master, Data, Coordinating 등 역할 구분. → 핵심 구성요소 | 클러스터 관리

Node Query Cache#

Filter Context 결과를 캐싱하는 노드 레벨 캐시. Refresh 시 무효화. → 성능 튜닝

Nori#

Elasticsearch 공식 한글 형태소 Analyzer. nori_tokenizer, nori_part_of_speech 필터 제공. 자동완성, 초성 검색 구현에 활용. → 한글 검색 최적화

nori_part_of_speech#

품사 태그 기반 토큰 필터링. 조사, 어미 등 불필요한 품사 제거. → 한글 검색

nori_readingform#

한자를 한글 발음으로 변환하는 토큰 필터. → 한글 검색

num_candidates#

kNN 검색에서 각 샤드별 후보 문서 수. 정확도와 속도의 트레이드오프. → Vector Search

Object (타입)#

중첩된 JSON 객체를 저장하는 필드 타입. 배열 시 평탄화되어 관계 손실 주의. → 데이터 모델링

percentiles (집계)#

백분위수를 계산하는 Metric Aggregation. P50, P95, P99 등. → 집계 개념

Pipeline Aggregation#

다른 집계 결과를 입력으로 사용하는 집계. avg_bucket, derivative, cumulative_sum 등. → 집계 개념

prefix (쿼리)#

접두사로 시작하는 값을 검색. 자동완성의 기본 방식. → Query DSL

Primary Shard#

원본 데이터가 저장되는 Shard. 생성 후 개수 변경 불가. Replica Shard의 원본. → 핵심 구성요소

Profile API#

쿼리 실행 성능을 상세 분석하는 API. 각 단계별 소요 시간 확인. → 성능 튜닝

Query Context#

검색어와 Document의 관련성 Score를 계산. Filter Context와 함께 Bool 쿼리에서 사용. → Query DSL

range (쿼리)#

숫자/날짜 범위 검색. gt, gte, lt, lte 연산자. 상대 날짜(now-7d) 지원. → Query DSL

Refresh#

메모리 버퍼의 데이터를 검색 가능하게 만드는 작업. 기본 1초. Bulk API 사용 시 조절 권장. Flush와 구분. → 인덱싱 전략 | 성능 튜닝

Reindex#

기존 Index를 새 인덱스로 복사/변환. Mapping 변경, 데이터 마이그레이션에 사용. → 인덱싱 전략

Replica Shard#

Primary Shard의 복제본. 읽기 성능 향상과 장애 대비. Cluster 내 다른 Node에 배치. → 고가용성

Repository (스냅샷)#

Snapshot을 저장하는 위치. S3, GCS, 파일 시스템 등 지원. → 고가용성

Rolling Restart#

클러스터를 무중단으로 재시작하는 절차. 샤드 재할당 비활성화 후 노드별 순차 재시작. → 클러스터 관리


S-Z#

Score (점수)#

검색어와 Document의 관련성을 나타내는 숫자. BM25 알고리즘으로 계산. Boosting으로 조절 가능. → 검색 관련성

search_after#

깊은 페이지네이션을 위한 방식. from + size 10,000건 제한 회피. 정렬 값 기반. → Query DSL

Segment#

Index를 구성하는 불변의 파일 조각. Refresh 시 생성. Merge로 통합. → 성능 튜닝

Segment Merge#

여러 작은 Segment를 하나의 큰 세그먼트로 병합. 삭제된 문서 실제 제거. I/O 부하 발생. → 핵심 구성요소

Semantic Search (시맨틱 검색)#

의미 기반 검색. 키워드가 달라도 의미가 유사한 문서를 찾음. Vector Search로 구현. → Vector Search

Shard (샤드)#

Index를 수평 분할한 조각. 분산 저장과 병렬 처리 단위. PrimaryReplica로 구분. → 핵심 구성요소

Shard Allocation#

ShardNode에 배치하는 과정. Watermark 설정으로 제어. → 클러스터 관리

Shard Request Cache#

집계 결과를 캐싱하는 샤드 레벨 캐시. 데이터 변경 시 무효화. → 성능 튜닝

SLM (Snapshot Lifecycle Management)#

Snapshot 생성/삭제를 자동화하는 정책. 보관 기간, 개수 제한 설정. → 고가용성

Slow Log#

지정 시간 이상 걸리는 쿼리/인덱싱을 기록하는 로그. 성능 병목 분석에 활용. → 성능 튜닝

Snapshot#

특정 시점의 Index 상태를 저장한 백업. 원격 저장소(S3, GCS 등)에 저장. SLM으로 자동화. → 고가용성

stats (집계)#

count, min, max, avg, sum을 한 번에 계산하는 Metric Aggregation. → 집계 개념

Synonym (동의어)#

다른 단어지만 같은 의미로 검색되도록 설정. 동의어 필터로 구현. → 데이터 모델링 | 한글 검색

term (쿼리)#

분석 없이 정확한 값을 검색. keyword 필드에 사용. text 필드에 사용 금지. → Query DSL

Term#

Analyzer 처리 후 생성된 개별 토큰. Inverted Index에 저장됨. → 데이터 모델링

terms (쿼리/집계)#

여러 값 중 하나라도 일치하는 문서 검색. 집계에서는 값별 그룹화. → Query DSL | 집계

text (타입)#

Analyzer로 분석되는 문자열 타입. 풀텍스트 검색용. 정렬/집계 불가. → 데이터 모델링

TF (Term Frequency)#

TermDocument 내에서 등장하는 빈도. BM25의 구성 요소. → 검색 관련성

Token Filter#

Tokenizer 출력을 변환하는 Analyzer 구성요소. 소문자 변환, 불용어 제거 등. → 데이터 모델링

Tokenizer#

텍스트를 토큰으로 분해하는 Analyzer의 구성 요소. Standard, Whitespace, Nori 등. → 데이터 모델링

Translog#

데이터 유실 방지를 위한 Write-Ahead Log. Flush 전까지 복구에 사용. → 고가용성

User Dictionary (사용자 사전)#

Nori 분석기에 커스텀 단어를 추가. 브랜드명, 신조어 등록. → 한글 검색

Embedding 벡터를 이용한 의미 기반 검색. kNN 알고리즘 사용. 시맨틱 검색, 유사 상품 추천에 활용. → Vector Search

Watcher#

조건 기반 알림을 설정하는 기능 (Basic License+). 클러스터 상태 모니터링 등. → 고가용성

Watermark (디스크)#

디스크 사용량 임계값. low(85%), high(90%), flood_stage(95%)에서 샤드 할당 제한. → 클러스터 관리

wildcard (쿼리)#

와일드카드(*, ?) 패턴 검색. 앞에 *가 오면 매우 느림. → Query DSL

Zone Awareness#

Primary와 Replica를 다른 가용 영역(Zone)에 배치하여 장애 대비. → 고가용성

초성 검색#

한글 자음(ㄱ, ㄴ, ㄷ…)으로 검색하는 기능. “ㄱㄹㅅ"로 “갤럭시” 검색. jaso-analyzer 플러그인 활용. → 한글 검색

형태소 분석#

한글을 의미 단위로 분해하는 과정. 조사 분리, 어근 추출. Nori 분석기로 수행. → 한글 검색


약어 정리#

약어풀네임의미참고
BM25Best Matching 25기본 스코어링 알고리즘검색 관련성
CCRCross-Cluster Replication클러스터 간 실시간 복제고가용성
DSLDomain Specific Language쿼리 언어Query DSL
HNSWHierarchical Navigable Small WorldkNN 인덱싱 알고리즘Vector Search
IDFInverse Document Frequency단어 희소성 지표검색 관련성
ILMIndex Lifecycle Management인덱스 수명주기 관리인덱싱 전략
kNNk-Nearest Neighborsk-최근접 이웃 검색Vector Search
NDJSONNewline Delimited JSONBulk API 형식인덱싱 전략
NRTNear Real-Time준실시간 검색핵심 구성요소
SLMSnapshot Lifecycle Management스냅샷 수명주기 관리고가용성
TFTerm Frequency단어 빈도 지표검색 관련성

다음 단계#