我正在使用 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) {
}
"""
`,
};
然后我收到以下错误:
"reason\":\"unexpected token ['\\"\\n for (int i = 0; i < ctx._source.metadata.length; ++i) {\\n }\\n \\"'] was expecting one of [{, ';'}].\"}},\"status\":500}"}
如何解决这个问题?
最佳答案
在 JavaScript 中,多行字符串可以用 `.不需要“”。您引用的文档不适用于 JavaScript。
... because my script is going to be a complex multi-line one
...但是您的第一个示例还显示了多行代码并且可以工作吗?
关于javascript - 在 Elasticsearch 中,为什么我的多行脚本不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55857942/