2016-04-14 9 views
1

Ich versuche, ein Feld zu einem Dokument hinzuzufügen, das etwas Ähnliches wie https://www.elastic.co/guide/en/elasticsearch/reference/current/docs-update.html#_scripted_updates tut. Es scheint jedoch, dass Probleme auftreten, da das Feld durch Bindestriche getrennt ist (scheinbar wie ein Minuszeichen behandelt wird), im Gegensatz zu Unterstrichen.Elasticsearch Escape Bindestrichfeld in groovy Skript

Beispiel Körper unter: {"script":"ctx._source.path.to.hyphen-separated-field = \"new data\""}

ich versuchte, die Bindestriche mit einem Backslash zu entkommen, aber ohne Glück.

Antwort

1

können Sie auf das Feld zugreifen eckigen Klammern, also tun Sie es einfach so:

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

Oder dies funktioniert auch

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

Funktioniert nicht auf v2.x von ES –

0

Dieses ist für mich auf 2.x gearbeitet (oder vielleicht auch andere Version):

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