Reputation: 4647
https://www.elastic.co/guide/en/elasticsearch/reference/current/nested.html
Consider:
PUT my_index
{
"mappings": {
"_doc": {
"properties": {
"user": {
"type": "nested"
}
}
}
}
}
PUT my_index/_doc/1
{
"group" : "fans",
"user" : [
{
"first" : "John",
"last" : "Smith"
},
{
"first" : "Alice",
"last" : "White"
}
]
}
When I run a painless script like:
ctx._source.user.add({
"first" : "Foo",
"last" : "Bar"
})
It is not working. I tried but cannot find any related documents or discussion started by other.
Upvotes: 11
Views: 14233
Reputation: 4647
You can create a map like ['first': 'Foo', 'last': 'Bar', 'sthElse': 100]
then add it.
So:
ctx._source.user.add([
"first" : "Foo",
"last" : "Bar"
])
Please note that map in painless can be mixed type.
Upvotes: 16
Reputation: 162
POST my_index/_doc/1/_update
{
"script": {
"lang": "painless",
"inline": "ctx._source.user.add(params.object)",
"params": {
"object": {
"first" : "Foo",
"last" : "Bar"
}
}
}
}
Upvotes: 5