Если вы часто пишите запросы скорее всего у вас один и тот же запрос повторяется большое количество раз. И конечно можно упростить использование таких запросов применяя шаблоны поиска.
Вы просто создаёте шаблон с запросом и далее используете его при поиске передавая в этот шаблон параметры. Я бы просто назвал это скриптом.
Создание шаблона
Для создания шаблона поиска используется _scripts.
POST _scripts/my-search-template
{
"script": {
"lang": "mustache",
"source": {
"query": {
"match": {
"": ""
}
}
}
}
}
- my-search-template - имя шаблона
- lang - язык скрипта. Список всех языков тут
- **, ** - переменные, которые будут передаваться при поиске
Использование шаблона
Если вы хотите вызвать шаблон поиска, вы просто используете конечную точку _search / template и в теле запроса.
GET my-index/_search/template
{
"id": "my-search-template",
"params": {
"my_field": "title",
"my_value": "elk"
}
}
Пустые значения для переменных
Естественно рано или поздно вы придёте к пустым значениям в переменных для шаблона поиска.
Для того чтобы не использовать значение в поиске если оно пустое скрываем его.
POST _scripts/my-search-template
{
"script": {
"lang": "mustache",
"source": {
"query": {
"match": {
"title": ""
}
,
"filter": {
"range": {
"date": {"gte": ""}
}
}
}
}
}
}
- **, ** - если значение
date
пустое, то не выполняем данный блок.
Комментарии