我们在 Elasticsearch 中,创建文档之后,还可以再次更新文档的内容,更新文档的内容有两种方式,即:直接替换的方式和更新的方式。
PUT /indexname/_doc/id { //json数据 }
参数 | 描述 |
---|---|
indexname | 索引名,相当于关系数据库的数据库名 |
_doc | 文档,固定的语法要求 |
id | 数据的id |
此时,如果 id 存在,则会用当前数据,直接更新原来的文档,如果 id 不存在,则会新建一个文档。
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" }
输入完成后,我们点击运行按钮,输出了最终的运行结果,如下图所示:
我们看到,此时我们创建索引成功了,现在,我们再次输入以下代码,更新该文档内容:
PUT /haicoder/_doc/1 { "name" : "server", "desc" : "server module", "categorys" : 10, "author" : "cainiao pei", "tags": [ "server", "python" ], "index":"www.haicoder.net" }
输入完成后,我们点击运行按钮,输出了最终的运行结果,如下图所示:
现在,我们 查看文档 内容,具体命令如下:
GET /haicoder/_doc/1
输入完成后,我们点击运行按钮,输出了最终的运行结果,如下图所示:
我们看到,现在 id 为 1 的数据,已经被修改了。
我们在 Kibana 的控制台上,输入以下代码,查看 id 为 1 的文档的内容:
GET /haicoder/_doc/1
输入完成后,我们点击运行按钮,输出了最终的运行结果,如下图所示:
现在,我们使用如下命令,更新该文档的 author 字段,具体命令如下:
POST /haicoder/_update/1 { "doc":{ "author": "Jobs" } }
输入完成后,我们点击运行按钮,输出了最终的运行结果,如下图所示:
现在,我们再次查询 id 为 1 的数据,具体命令如下:
GET /haicoder/_doc/1
输入完成后,我们点击运行按钮,输出了最终的运行结果,如下图所示:
我们看到,这次,文档的 author 字段已经被更新为了 Jobs。
在 Elasticsearch 中,更新文档的内容有两种方式,即:直接替换的方式和更新的方式。Elasticsearch 替换文档语法:
PUT /indexname/_doc/id { //json数据 }
Elasticsearch 更新文档语法:
POST /indexname/_update/id { "doc":{ "author": "Jobs" } }