【问题标题】:In Elasticsearch, why isn't my multi-line script working?在 Elasticsearch 中,为什么我的多行脚本不起作用?
【发布时间】:2019-04-26 05:50:09
【问题描述】:

我正在使用 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) {
  }
  """
  `,
};

然后我得到以下错误:

"原因\":\"意外标记 ['\\"\\n for (int i = 0; i

我该如何解决这个问题?

【问题讨论】:

    标签: javascript elasticsearch


    【解决方案1】:

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

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

    ...但是您的第一个示例也显示了多行代码并且有效吗?

    【讨论】:

      猜你喜欢
      • 2022-01-17
      • 2016-11-03
      • 2012-10-07
      • 2015-10-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-05-30
      相关资源
      最近更新 更多