2016-03-24 5 views
0

Я получаю сообщение об ошибке с скриптом Groovy.Упругий поиск Ошибка Groovy Ошибка

{"script":"if (ctx._source.containsKey(\"productoption\")) {ctx._source.productoption= [product];} else {ctx._source.productoption= [product];}","params":"{\"product\":[{\"id\":\"123ab\",\"name\":\"testing\"}]}"} 

Ошибка:

{ 
    "error": { 
    "root_cause": [ 
     { 
     "type": "remote_transport_exception", 
     "reason": "[ESMasterNode][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": "failed to run inline script [if (ctx._source.containsKey(\"productoption\")) {ctx._source.productoption= [product];} else {ctx._source.productoption= [product];}] using lang [groovy]", 
     "caused_by": { 
     "type": "missing_property_exception", 
     "reason": "No such property: product for class: 3b2894bb604d8fb601b627ert64e3fde8242f1b2" 
     } 
    } 
    }, 
    "status": 400 
} 

Это как-то не идентифицирующий параметров, который послал с этим. Есть что-то, чего я не хватает?

ответ

1

Вы совершили небольшую ошибку при прохождении params. Используйте его, как это и вы хорошо идти:

{ 
"script":"if (ctx._source.containsKey(\"productoption\")) {ctx._source.productoption= [product];} else {ctx._source.productoption= [product];}", 
"params": { 
    "product": [ 
    { 
     "id": "123ab", 
     "name": "testing" 
     } 
    ] 
    } 
} 
+0

Спасибо, что это я использовал JSon Serializer на упорядоченное поле. – TBA

+0

Добавляем к тому, что productoption теперь обновляется двумя квадратными скобками. «productoption»: [[ { "id": "123ab", "name": "testing" } ]] 'Любая идея, как ее решить? – TBA

+0

Удалить '[]' из 'script'. – Richa

Смежные вопросы