考虑:
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"
}
]
}
当我运行像:
这样的无痛脚本时ctx._source.user.add({
"first" : "Foo",
"last" : "Bar"
})
它不起作用。我试过但找不到任何其他相关文件或讨论。
答案 0 :(得分:3)
您可以创建一个类似['first': 'Foo', 'last': 'Bar', 'sthElse': 100]
的地图,然后添加它。
所以:
ctx._source.user.add([
"first" : "Foo",
"last" : "Bar"
])
请注意,无痛地图可以混合使用。
答案 1 :(得分:0)
POST my_index/_doc/1/_update
{
"script": {
"lang": "painless",
"inline": "ctx._source.user.add(params.object)",
"params": {
"object": {
"first" : "Foo",
"last" : "Bar"
}
}
}
}