尝试更新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}
非常感谢。
答案 0 :(得分:1)
您尝试访问对象prices_list的属性5,但是您说自己在更新之前删除了该对象。
if (ctx._source.prices_list.5 == null)
VS ctx._source.remove('prices_list')
您不能检查不存在的对象的属性。