2016-03-24 12 views
0

Groovyスクリプトでエラーが発生しました。Elastic Search 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 
} 

それは何とかこれで送られたのparamを識別しません。私が紛失しているものはありますか?

答えて

1

paramsを渡している間に少し間違ったことがあります。このようにそれを使用して、あなたが行ってもいいです :私はシリアル化されたフィールド上でJSONシリアライザを使用していたことだった

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

感謝。 – TBA

+0

これを追加すると、productoptionは2つの角括弧で更新されます。 "productoption":[ { "id": "123ab"、 "名前": "テスト" } ]]どのようなアイデア、これを解決するには? – TBA

+0

'スクリプト'から '[]'を削除します。 – Richa

関連する問題