繁体   English   中英

在Elasticsearch中,为什么我的多行脚本不起作用?

[英]In Elasticsearch, why isn't my multi-line script working?

我正在使用Elasticsearch JavaScript API。

以下脚本在无错误运行的意义上起作用:

const script = {
  "lang": "painless",
  "source": `
  for (int i = 0; i < ctx._source.metadata.length; ++i) {
  }
  `,
};

但是,当我尝试使用以下示例中的三个双引号时:

https://www.elastic.co/guide/en/elasticsearch/painless/master/painless-examples.html#_accessing_doc_values_from_painless

(因为我的脚本将是一个复杂的多行脚本),所以我将代码修改为:

const script = {
  "lang": "painless",
  "source": `
  """
  for (int i = 0; i < ctx._source.metadata.length; ++i) {
  }
  """
  `,
};

然后出现以下错误:

“ reason \\”:\\“意外的令牌['\\\\” \\\\ n for(int i = 0; i <ctx._source.metadata.length; ++ i){\\\\ n} \\\\ n \\\\“' ]期望[{,';'}]。\\“}},\\”状态\\“:500}”}中的一个

如何解决此问题?

在JavaScript中,多行字符串可以使用`。 不需要“”。您参考的文档不适用于JavaScript。

...因为我的脚本将是一个复杂的多行脚本

...但是您的第一个示例也显示了多行代码,这行得通吗?

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM