2016-04-14 17 views
1

https://www.elastic.co/guide/en/elasticsearch/reference/current/docs-update.html#_scripted_updatesと似たような文書にフィールドを追加しようとしています。しかし、アンダースコアを区切ってではなく、フィールドがハイフンで区切られている(マイナス記号として扱われているように見える)ため、問題に遭遇しているようです。以下groovyスクリプト内のElasticsearchエスケープハイフネーションフィールド

例ボディ: {"script":"ctx._source.path.to.hyphen-separated-field = \"new data\""}

私はバックスラッシュでハイフンを脱出しようとしましたが、運に。この1つは2.xの上で私のために働いた

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

答えて

1

あなたは角括弧を使用してフィールドにアクセスすることができ、つまりは単純に、このようにそれを行いますおそらく他のバージョンも):

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

それともこれも動作します(または:

+0

v2.xのESでは動作しません –

0

{"script": "ctx._source.path.to['hyphen-separated-field'] = \"new data\""} 
関連する問題