在某些场景里面,我们会涉及到去修改已经存储到elasticsearch中的数据。Elasticsearch中也提供相关的更新功能,但是整个更新流程是这样的
1、用户发起更新的请求api。 2、elasticsearch根据请求的数据查询出原始的文档数据。 3、elasticsearch在原始的文档数据里面修改我们此次修改的字段值,生成一条新的json数据。 4、elasticsearch把原文档的记录标记为删除的状态。 5、elasticsearch重新插入这条新的json数据。
下面我们演示下elasticsearch的更新示例。这里我们把devices白哦的id为1的数据进行修改下
修改的语法如下:
post /${index_name}/_doc/${id}/_update json
例如我们想要把id为1的设备的uuid修改为123,那么示例如下:
post /devices/_doc/1/_update { "doc": { "device_uuid": "123" } }
然后我们看下结果:
id为1的device_uuid的值已经被修改成了123。此时修改成功
备注:
1、elasticsearch的更新操作其实是会删除原来的数据,然后再重新索引新的数据。
2、在更新的时候,一定要指定id
3、在更新的时候,url里面一定要带有_update,如果不带,那么执行的时候就不是更新,而是覆盖掉原来的数据。
4、在json里面,要修改的值必须被doc字段包围住。
还没有评论,来说两句吧...