elasticsearch groovy脚本中的Elasticsearch转义连字符字段,elasticsearch,groovy,escaping,elasticsearch,Groovy,Escaping" /> elasticsearch groovy脚本中的Elasticsearch转义连字符字段,elasticsearch,groovy,escaping,elasticsearch,Groovy,Escaping" />

elasticsearch groovy脚本中的Elasticsearch转义连字符字段

elasticsearch groovy脚本中的Elasticsearch转义连字符字段,elasticsearch,groovy,escaping,elasticsearch,Groovy,Escaping,我正在尝试向文档中添加一个字段,其操作类似于。但是,我似乎遇到了一些问题,因为字段是用连字符分隔的(似乎被视为负号),而不是用下划线分隔的 示例正文如下: {“script”:“ctx.\u source.path.to.hyphen-separated-field=\“new data\”} 我试图用反斜杠将连字符转义,但没有成功。您可以使用方括号访问该字段,也就是说,只需这样做: {"script": "ctx._source.path.to['hyphen-separated-field'

我正在尝试向文档中添加一个字段,其操作类似于。但是,我似乎遇到了一些问题,因为字段是用连字符分隔的(似乎被视为负号),而不是用下划线分隔的

示例正文如下:
{“script”:“ctx.\u source.path.to.hyphen-separated-field=\“new data\”}


我试图用反斜杠将连字符转义,但没有成功。

您可以使用方括号访问该字段,也就是说,只需这样做:

{"script": "ctx._source.path.to['hyphen-separated-field'] = \"new data\""}
或者这也会起作用

{"script": "ctx._source.path.to.'hyphen-separated-field' = 'new data'"}

这一个在2.x(或者其他版本)上对我有效:

"script": {
  "inline": "ctx._source.path.to[field] = val",
  "params": {
    "val": "This is the new value", 
    "field": "hyphen-separated-field"
  }
}