Вы почти на месте, просто нужно добавить params.
перед updated_time
:
{
"script": {
"inline": "ctx._source.items.suggestionTime = params.updated_time",
"params": {
"updated_time": {
"field": df['suggestionTime'][i]
}
}
}
}
Если вы попытаетесь выполнить свой запрос в консоли Kibana , он будет выглядетьчто-то вроде этого:
POST /my-index-2018-12/doc/AWdpylbN3HZjlM-Ibd7X/_update
{
"script": {
"inline": "ctx._source.suggestionTime = updated_time",
"params": {
"updated_time": {
"field": "2018-10-03T18:33:00Z"
}
}
}
}
Вы увидите полный ответ Elasticsearch, который будет выглядеть как ваше сообщение об ошибке + ценные детали:
{
"error": {
"root_cause": [
{
"type": "remote_transport_exception",
"reason": "[7JNqOhT][127.0.0.1:9300][indices:data/write/update[s]]"
}
],
"type": "illegal_argument_exception",
"reason": "failed to execute script",
"caused_by": {
"type": "script_exception",
"reason": "compile error",
"script_stack": [
"... _source.suggestionTime = updated_time",
" ^---- HERE"
],
"script": "ctx._source.suggestionTime = updated_time",
"lang": "painless",
"caused_by": {
"type": "illegal_argument_exception",
"reason": "Variable [updated_time] is not defined."
}
}
},
"status": 400
}
Что указывает на синтаксическую ошибку(параметры, по-видимому, вводятся как params
объект ).
Я считаю, что настройки сценариев не являются источником проблемы в этом случае.
Надеюсь, чтопомогает!