Elasticsearch - 如何更新文档

J.D*_*one 2 elasticsearch

elasticsearch如何更新文档?会删除原来的文件并新建一个吗?我听说nosql的更新方法是这样的。elasticsearch 和其他 nosql 数据库一样吗?或者它将替换/插入需要的字段?

Des*_*ang 6

例如,我正在使用 Elasticsearh 7.0.0 运行。首先,我创建了一个文档,

PUT /员工/_doc/1

{
    "first_name" : "John",
    "last_name" : "Snow",
    "age" : 19,
    "about" : "King in the north",
    "sex" : "male"
}
Run Code Online (Sandbox Code Playgroud)

然后我通过更新它

发布 /employee/_update/1/

{
    "doc": {  
        "first_name" : "Aegon",
        "last_name" : "Targaryen",
        "skill": "fighting and leading"
    }
}
Run Code Online (Sandbox Code Playgroud)

最后,我得到了正确的结果

获取/员工/_doc/1

{
    "_index" : "employee",
    "_type" : "_doc",
    "_id" : "1",
    "_version" : 9,
    "_seq_no" : 11,
    "_primary_term" : 1,
    "found" : true,
    "_source" : {
        "first_name" : "Aegon",
        "last_name" : "Targaryen",
        "age" : 19,
        "about" : "King in the north",
        "sex" : "male",
        "skill" : "fighting and leading"
    }
}
Run Code Online (Sandbox Code Playgroud)