繁体   English   中英

Elasticsearch - 如何更新文档

[英]Elasticsearch - How to update document

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

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

PUT /employee/_doc/1

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

然后我通过

POST /employee/_update/1/

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

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

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

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

  • 检索 JSON(您要重新编制索引)
  • 改变它
  • 删除旧文件
  • 索引新文档

Elasticsearch 文档

对于答案,您可以查看文档

除了能够索引和替换文档,我们还可以更新文档。 但请注意,Elasticsearch 实际上并没有在幕后进行就地更新。 每当我们进行更新时,Elasticsearch 都会删除旧文档,然后一次性索引一个新文档,并将更新应用于它。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM