Обновление эластичного поиска нелегально_argument_exception - PullRequest
0 голосов
/ 26 сентября 2018

У меня небольшая проблема при попытке обновить документ ES.

В настоящее время мой метод обновления php выглядит следующим образом: и я получил эту ошибку:

  {"error":{"root_cause":

[{"type":"remote_transport_exception","reason":"[DVcjUVo][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":"runtime error","script_stack":["if (ctx._source.prices_list.5 == null) { ","
          ^---- HERE"],"script":"if (ctx._source.prices_list.5 == null) { ctx._source.list.5 = [params.new_price_data] } else { ctx._source.list.5.add(params.new
  _price_data) }","lang":"painless","caused_by":{"type":"null_pointer_exception","reason":null}}},"status":400}

Большое спасибо.

1 Ответ

0 голосов
/ 26 сентября 2018

Вы пытаетесь получить доступ к свойству 5 объекта цен_списка, но вы сами говорите, что удалите этот объект непосредственно перед обновлением.

if (ctx._source.prices_list.5 == null) VS ctx._source.remove('prices_list')

Невозможно проверить свойство несуществующего объекта.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...