我正在使用Elasticsearch JavaScript API。
以下脚本在无错误运行的意义上起作用:
const script = {
"lang": "painless",
"source": `
for (int i = 0; i < ctx._source.metadata.length; ++i) {
}
`,
};
但是当我尝试使用三个双引号时,如以下示例所示:
(因为我的脚本将是一个复杂的多行脚本),所以我将代码修改为:
const script = {
"lang": "painless",
"source": `
"""
for (int i = 0; i < ctx._source.metadata.length; ++i) {
}
"""
`,
};
然后出现以下错误:
“原因\”:\“意外令牌['\\” \\ n for(int i = 0; i < ctx._source.metadata.length; ++ i){\\ n} \\ n \\“']原为 期待[{,';'}]。\“}},\”状态\“:500}”}
之一
如何解决此问题?
答案 0 :(得分:1)
在JavaScript中,多行字符串可以使用`来完成。不需要“”。您参考的文档不适用于JavaScript。
...因为我的脚本将是一个复杂的多行脚本
...但是您的第一个示例还显示了多行代码,行得通吗?