elasticsearch如何更新文档?它会删除原始文件并制作新文件吗?我听说这是nosql的更新方法。 elasticsearch做什么,和其他任何nosql db一样吗?或者它将替换/插入需要的字段?
答案 0 :(得分:1)
elasticsearch中的文档是不可变对象。更新文档始终是重建索引,它包含以下步骤:
答案 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"
}
}