2016-04-14 63 views
1

我正在嘗試向類似https://www.elastic.co/guide/en/elasticsearch/reference/current/docs-update.html#_scripted_updates的文檔中添加一個字段。然而,由於字段被連字符分隔(似乎被視爲負號),而不是下劃線分隔,我似乎遇到了問題。Elasticsearch轉義groovy腳本中的連字段

舉例如下機構: {"script":"ctx._source.path.to.hyphen-separated-field = \"new data\""}

我試圖逃避用反斜槓的連字符,但沒有運氣。

回答

1

您可以使用方括號訪問現場,即簡單地做這樣的:

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

或者,這也將工作

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

不能在v2.x的ES –

0

這一個爲我工作在2.X(或也可能是其他版本):

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