인덱스 템플릿과 컴포넌트 템플릿 — 매번 매핑을 반복 지정하지 않는 법
Elasticsearch Rank Eval API 및 인덱스/컴포넌트 템플릿 공식 문서 종합 (웹 리서치, 2026) — Elastic 공식 문서(reference/elasticsearch/rest-apis/search-rank-eval, manage-data/data-store/templates) Elastic 공식 문서 Index and component templates
이 모듈을 다 읽으면
- 인덱스 템플릿이 새 인덱스 생성 시 설정을 자동 적용하는 방식을 설명할 수 있다
- 컴포넌트 템플릿이 재사용 가능한 조각으로 쓰이는 이유와, 여러 템플릿이 겹칠 때의 우선순위 규칙을 설명할 수 있다
elasticsearch-learn-03에서 다룬 매핑을 매번 인덱스 생성 시점에 손으로 지정하지 않아도, 이름 패턴에 맞는 인덱스가 만들어질 때 자동으로 설정·매핑·별칭을 적용해주는 인덱스 템플릿과, 그 재사용 가능한 부품인 컴포넌트 템플릿을 정리한다.
인덱스 템플릿 — 이름 패턴에 맞는 인덱스가 생길 때 자동 적용
인덱스 템플릿은 인덱스나 데이터 스트림이 생성될 때(수동으로 만들든, 문서를 색인해 자동 생성되든) Elasticsearch가 설정·매핑·기타 구성을 자동으로 적용하는 메커니즘이다 — 이름 패턴이 일치하는 템플릿이 있으면 그 템플릿에 정의된 설정·매핑·별칭이 그대로 적용된다. 시계열 데이터나 데이터 스트림처럼 같은 패턴의 인덱스가 계속 새로 생기는 상황에서, 매번 반복적으로 설정을 지정할 필요가 없어진다는 게 핵심 이점이다.
핵심 포인트
- 인덱스 템플릿은 이름 패턴이 일치하는 인덱스/데이터 스트림 생성 시 설정·매핑·별칭을 자동 적용
- 시계열 데이터/데이터 스트림처럼 같은 패턴의 인덱스가 계속 새로 생기는 상황에서 반복 설정을 없애줌
컴포넌트 템플릿 — 인덱스에 직접 안 붙는 재사용 부품
컴포넌트 템플릿은 매핑·설정·별칭을 정의하지만 인덱스에 직접 적용되지는 않는다 — 대신 인덱스 템플릿이 이를 참조(composed_of)해서 조합해 쓴다. 이 덕분에 여러 인덱스 템플릿이 공통으로 쓰는 설정 조각(예: 공통 필드 매핑)을 한 곳에 정의해두고 여러 인덱스 템플릿에서 재사용할 수 있어, 같은 설정을 여기저기 중복해서 적어두는 것을 피할 수 있다.
핵심 포인트
- 컴포넌트 템플릿은 매핑/설정/별칭을 정의하지만 인덱스에 직접 적용되지 않음 — 인덱스 템플릿이 composed_of로 참조해 조합
- 여러 인덱스 템플릿이 공유하는 공통 설정 조각을 한 곳에 정의해 재사용 — 설정 중복을 방지
여러 템플릿이 겹칠 때의 우선순위
우선순위는 명확한 규칙을 따른다 — (1) 인덱스 생성 요청에 명시된 설정이 템플릿 설정보다 우선, (2) 인덱스 템플릿 설정이 컴포넌트 템플릿 설정보다 우선, (3) composed_of 목록에서 나중에 나열된 컴포넌트 템플릿이 먼저 나열된 것보다 우선, (4) 여러 인덱스 템플릿이 동시에 매칭되면 priority 값이 더 높은 쪽이 적용된다. Elasticsearch 내장 템플릿의 priority는 100이므로, 사용자 정의 템플릿은 충돌을 피하려면 100보다 낮은 priority를 쓰거나, 의도적으로 내장 템플릿을 덮어쓰려면 501 이상을 쓰는 것이 권장된다.
핵심 포인트
- 우선순위: 요청 명시 설정 > 인덱스 템플릿 > 컴포넌트 템플릿, composed_of 목록에서는 나중 항목이 우선, 여러 인덱스 템플릿 매칭 시 priority값이 높은 쪽 적용
- 내장 템플릿 priority는 100 — 충돌 회피는 100 미만, 의도적 덮어쓰기는 501 이상 권장