템플릿 렌더 API
템플릿 렌더 API (Render Template API)
Render Template API는 search template에서 파라미터를 치환해 생성된 최종 쿼리를, 검색을 실행하지 않고 미리 보여줘요.
도입 버전 1.0
엔드포인트
GET /_render/template
POST /_render/template
GET /_render/template/{id}
POST /_render/template/{id}
경로 파라미터
다음 표는 사용 가능한 경로 파라미터를 보여줘요. 모든 경로 파라미터는 선택 사항이에요.
| 파라미터 | 데이터 타입 | 설명 |
|---|---|---|
| id | String | 렌더링할 검색 템플릿의 ID예요. |
요청 본문 필드
다음 표는 사용 가능한 요청 본문 필드를 보여줘요.
| 파라미터 | 필수 여부 | 데이터 타입 | 설명 |
|---|---|---|---|
| id | 조건부 | String | 렌더링할 검색 템플릿의 ID예요. 경로에 ID가 제공되거나 source 로 인라인 템플릿을 지정한 경우에는 필요하지 않아요. |
| params | 아니요 | Object | 검색 템플릿에 있는 Mustache 변수를 대체하는 키-값 쌍 목록이에요. 이 키-값 쌍은 검색 대상 문서에 존재해야 해요. |
| source | 조건부 | Object | 검색 템플릿을 지정하지 않을 때 렌더링할 인라인 검색 템플릿이에요. Search API 요청과 동일한 파라미터 및 Mustache 변수를 지원해요. |
예제 요청
다음 두 요청 예제는 모두 템플릿 ID play_search_template인 검색 템플릿을 사용해요:
{
"source": {
"query": {
"match": {
"play_name": "{{play_name}}"
}
}
},
"params": {
"play_name": "Henry IV"
}
}
템플릿 ID로 템플릿 렌더링
다음 예제 요청은 ID가 play_search_template인 검색 템플릿을 검증해요:
POST /_render/template
{
"id": "play_search_template",
"params": {
"play_name": "Henry IV"
}
}
_source로 템플릿 렌더링
저장된 템플릿을 사용하지 않거나, 템플릿을 저장하기 전에 테스트하고 싶다면 아래 예제처럼 Mustache 변수를 사용해 _source 파라미터로 템플릿을 테스트할 수 있어요:
{
"source": {
"from": "{{from}}{{^from}}0{{/from}}",
"size": "{{size}}{{^size}}10{{/size}}",
"query": {
"match": {
"play_name": "{{play_name}}"
}
}
},
"params": {
"play_name": "Henry IV"
}
}
예제 응답
OpenSearch는 템플릿 출력에 대한 정보로 응답해요:
{
"template_output": {
"from": "0",
"size": "10",
"query": {
"match": {
"play_name": "Henry IV"
}
}
}
}
출처: 문서