API создания или обновления хранимого сценария
Создает или обновляет хранимый сценарий или шаблон поиска.
resp = client.put_script(
id="my-stored-script",
script={
"lang": "painless",
"source": "Math.log(_score * 2) + params['my_modifier']"
},
)
print(resp) response = client.put_script(
id: 'my-stored-script',
body: {
script: {
lang: 'painless',
source: "Math.log(_score * 2) + params['my_modifier']"
}
}
)
puts response const response = await client.putScript({
id: "my-stored-script",
script: {
lang: "painless",
source: "Math.log(_score * 2) + params['my_modifier']",
},
});
console.log(response); PUT _scripts/my-stored-script
{
"script": {
"lang": "painless",
"source": "Math.log(_score * 2) + params['my_modifier']"
}
} Запрос
PUT _scripts/<script-id>
POST _scripts/<script-id>
PUT _scripts/<script-id>/<context>
POST _scripts/<script-id>/<context>
Предварительные условия
- Если включены функции безопасности Elasticsearch, у вас должен быть
manageсписок привилегий кластера, чтобы использовать этот API.
Параметры пути
-
<script-id> - (Обязательный, строка) Идентификатор хранимого сценария или шаблона поиска. Должен быть уникальным в рамках кластера.
-
<context> - (Необязательный, строка) Контекст, в котором должен выполняться сценарий или шаблон поиска. Для предотвращения ошибок API сразу компилирует сценарий или шаблон в этом контексте.
Параметры запроса
-
context -
(Необязательный, строка) Контекст, в котором должен выполняться сценарий или шаблон поиска. Для предотвращения ошибок API сразу компилирует сценарий или шаблон в этом контексте.
Если вы указали этот параметр и
<context>параметр пути запроса, API использует параметр пути запроса. -
master_timeout - (Необязательный, единицы времени) Время ожидания узла-мастера. Если узел-мастер недоступен до истечения таймаута, запрос завершается ошибкой. По умолчанию
30s. Также можно установить значение-1, чтобы запрос никогда не превысил таймаут. -
timeout - (Необязательный, единицы времени) Время ожидания ответа от всех соответствующих узлов в кластере после обновления метаданных кластера. Если ответ не получен до истечения таймаута, обновление метаданных кластера всё равно применяется, но ответ укажет, что оно не было полностью подтверждено. По умолчанию
30s. Также можно установить значение-1, чтобы запрос никогда не превысил таймаут.
Тело запроса
-
script -
(Обязательный, объект) Содержит сценарий или шаблон поиска, его параметры и язык.
Свойства
script-
lang - (Обязательный, строка) Язык сценария. Для шаблонов поиска используйте
mustache. -
source -
(Обязательный, строка или объект) Для сценариев – строка, содержащая сценарий.
Для шаблонов поиска – объект, содержащий шаблон поиска. Объект поддерживает те же параметры, что и тело запроса API поиска. Также поддерживает переменные Mustache. См. Шаблоны поиска.
-
params - (Необязательный, объект) Параметры сценария или шаблона поиска.
-
© 2023-2025 Elasticsearch
As of September 2024, Elasticsearch is available under a choice of three licenses: the Server Side Public License (SSPL), the Elastic License, or the AGPLv3 (OSI approved).
Elasticsearch and the Elasticsearch logo are trademarks of Elasticsearch B.V., registered in the U.S. and in other countries.
https://www.elastic.co/guide/en/elasticsearch/reference/8.17/create-stored-script-api.html