Elasticsearch - 如何更新文档

时间:2017-08-23 09:43:20

标签: elasticsearch

elasticsearch如何更新文档?它会删除原始文件并制作新文件吗?我听说这是nosql的更新方法。 elasticsearch做什么,和其他任何nosql db一样吗?或者它将替换/插入需要的字段?

3 个答案:

答案 0 :(得分:1)

elasticsearch中的文档是不可变对象。更新文档始终是重建索引,它包含以下步骤:

  • 检索JSON(您要重新索引)
  • 更改
  • 删除旧文档
  • 索引新文档

Elasticsearch documentation

答案 1 :(得分:0)

要获得答案,您可以查看documantation

  

除了能够索引和替换文档之外,我们还可以   更新文件。请注意,Elasticsearch实际上并没有这样做   引擎盖下的就地更新。每当我们进行更新时,   Elasticsearch删除旧文档,然后索引新文档   将更新应用于一次。

答案 2 :(得分:0)

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

PUT /员工/ _doc / 1

{
    "first_name" : "John",
    "last_name" : "Snow",
    "age" : 19,
    "about" : "King in the north",
    "sex" : "male"
}

然后我通过

对其进行了更新

POST /员工/ _update / 1 /

{
    "doc": {  
        "first_name" : "Aegon",
        "last_name" : "Targaryen",
        "skill": "fighting and leading"
    }
}

最后,我得到正确的结果

获取/员工/ _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"
    }
}