Elasticsearch修改文档

Elasticsearch修改文档教程

我们在 Elasticsearch 中,创建文档之后,还可以再次更新文档的内容,更新文档的内容有两种方式,即:直接替换的方式和更新的方式。

Elasticsearch替换文档详解

语法

PUT /indexname/_doc/id { //json数据 }

参数

参数 描述
indexname 索引名,相当于关系数据库的数据库名
_doc 文档,固定的语法要求
id 数据的id

说明

此时,如果 id 存在,则会用当前数据,直接更新原来的文档,如果 id 不存在,则会新建一个文档。

Elasticsearch更新文档详解

语法

POST /indexname/_update/id { "doc":{ "author": "Jobs" } }

参数

参数 描述
indexname 索引名
id 需要更新的 id
filed 需要更新的字段
value 需要将 field 更新为的值

说明

我们使用 update,可以更新某个具体的字段。

案例

替换文档

我们在 Kibana 的控制台上,输入以下代码,新建一个索引并创建文档:

PUT /haicoder/_doc/1 { "name" : "javascript", "desc" : "javascript module", "categorys" : 5, "author" : "jobs steven", "tags": [ "javascript", "vue" ], "index":"www.haicoder.net" }

输入完成后,我们点击运行按钮,输出了最终的运行结果,如下图所示:

19_Elasticsearch更新文档.png

我们看到,此时我们创建索引成功了,现在,我们再次输入以下代码,更新该文档内容:

PUT /haicoder/_doc/1 { "name" : "server", "desc" : "server module", "categorys" : 10, "author" : "cainiao pei", "tags": [ "server", "python" ], "index":"www.haicoder.net" }

输入完成后,我们点击运行按钮,输出了最终的运行结果,如下图所示:

20_Elasticsearch更新文档.png

现在,我们 查看文档 内容,具体命令如下:

GET /haicoder/_doc/1

输入完成后,我们点击运行按钮,输出了最终的运行结果,如下图所示:

21_Elasticsearch更新文档.png

我们看到,现在 id 为 1 的数据,已经被修改了。

更新文档

我们在 Kibana 的控制台上,输入以下代码,查看 id 为 1 的文档的内容:

GET /haicoder/_doc/1

输入完成后,我们点击运行按钮,输出了最终的运行结果,如下图所示:

22_Elasticsearch更新文档.png

现在,我们使用如下命令,更新该文档的 author 字段,具体命令如下:

POST /haicoder/_update/1 { "doc":{ "author": "Jobs" } }

输入完成后,我们点击运行按钮,输出了最终的运行结果,如下图所示:

23_Elasticsearch更新文档.png

现在,我们再次查询 id 为 1 的数据,具体命令如下:

GET /haicoder/_doc/1

输入完成后,我们点击运行按钮,输出了最终的运行结果,如下图所示:

24_Elasticsearch更新文档.png

我们看到,这次,文档的 author 字段已经被更新为了 Jobs。

Elasticsearch修改文档总结

在 Elasticsearch 中,更新文档的内容有两种方式,即:直接替换的方式和更新的方式。Elasticsearch 替换文档语法:

PUT /indexname/_doc/id { //json数据 }

Elasticsearch 更新文档语法:

POST /indexname/_update/id { "doc":{ "author": "Jobs" } }