elasticsearch update with partial document会覆盖原始文档而不是合并它。
我认为merge只会更新相应的属性或插入新的属性。我是否想念合并应该做什么?
这就是我的做法:
映射:
PUT my_index
{
"mappings": {
"my_type": {
"properties": {
"user": {
"type": "nested"
}
}
}
}
}
索引doc:
PUT my_index/my_type/1
{
"group" : "fans",
"user" : [
{
"first" : "John",
"last" : "Doe",
"age": 31
},
{
"first" : "Foo",
"last" : "Bar",
"age" : 26
}
]
}
部分更新:
POST my_index/my_type/1/_update
{
"doc": {
"group" : "fans",
"user" : [
{
"first" : "Joe",
"last" : "Smith",
},
{
"first" : "Alice",
"last" : "Baz"
}
]
}
}
结果只是没有age
属性的新文档。我可以保留不在部分更新中的属性吗?
答案 0 :(得分:0)
您提供的POST不使用与原始PUT相同的索引和类型名称。请尝试使用POST my_index/my_type/1/_update
代替POST test/type1/1/_update
。