Elasticsearch - 如何更新文档
Posted
技术标签:
【中文标题】Elasticsearch - 如何更新文档【英文标题】:Elasticsearch - How to update document 【发布时间】:2018-01-31 20:02:47 【问题描述】:elasticsearch如何更新文档?它会删除原始文件并制作新文件吗?我听说这就是nosql的更新方法。 elasticsearch 和其他 nosql 数据库一样吗?或者它将替换/插入需要的字段?
【问题讨论】:
Does Elasticsearch reindex the documents automatically each time I update them的可能重复 【参考方案1】:elasticsearch 中的文档是不可变对象。更新文档始终是重新索引,它包含以下步骤:
检索 JSON(您要重新索引) 改变它 删除旧文档 索引新文档Elasticsearch documentation
【讨论】:
【参考方案2】:例如,我使用的是 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"
最后,我得到了正确的结果
GET /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"
【讨论】:
感谢@kalehmann 的编辑!我错过了我的代码格式。您的帮助使答案易于阅读。【参考方案3】:答案可以查看documentation:
除了能够索引和替换文档之外,我们还可以 更新文件。请注意,尽管 Elasticsearch 实际上并没有这样做 引擎盖下的就地更新。每当我们进行更新时, Elasticsearch 删除旧文档,然后索引新文档 一次将更新应用到它。
【讨论】:
链接好像坏了。以上是关于Elasticsearch - 如何更新文档的主要内容,如果未能解决你的问题,请参考以下文章
Elasticsearch:Dynamic field mapping