У меня есть следующий код:
"script": {
"lang": "painless",
"source": """
ctx._source.maparray = [
"first" : "Foo",
"last" : "Bar"
]
, что приводит к
"maparray": {
"last": "Bar",
"first": "Foo"
},
Но я хочу, чтобы maparray был массивом. Так что теперь на основе:
https://www.elastic.co/guide/en/elasticsearch/painless/current/painless-operators-array.html
Я пытаюсь:
"script": {
"lang": "painless",
"source": """
ctx._source.maparray = new map[]{[
"first" : "Foo",
"last" : "Bar"
]}
""",
"params": {
"key": "numWords"
}
}
но я получаю:
{
"error": {
"root_cause": [
{
"type": "script_exception",
"reason": "compile error",
"script_stack": [
"... x._source.maparray = new map[]{[\n \"first\" : \"Fo ...",
" ^---- HERE"
],
"script": " ctx._source.maparray = new map[]{[\n \"first\" : \"Foo\",\n \"last\" : \"Bar\"\n]}",
"lang": "painless"
}
],
"type": "script_exception",
"reason": "compile error",
"script_stack": [
"... x._source.maparray = new map[]{[\n \"first\" : \"Fo ...",
" ^---- HERE"
],
"script": " ctx._source.maparray = new map[]{[\n \"first\" : \"Foo\",\n \"last\" : \"Bar\"\n]}",
"lang": "painless",
"caused_by": {
"type": "illegal_argument_exception",
"reason": "invalid sequence of tokens near ['map'].",
"caused_by": {
"type": "no_viable_alt_exception",
"reason": null
}
}
},
"status": 500
}
В чем проблема с моим синтаксисом?