템플릿 렌더 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"
      }
    }
  }
}

출처: 문서