Elasticsearch数据增删改

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Elasticsearch数据增删改相关的知识,希望对你有一定的参考价值。

参考技术A     本文介绍 ElasticSearch 增加、删除、修改的使用示例。通过Restful 接口和 Postman实现.ElasticSearch 版本为6.3.2。

关于索引的创建请参考: https://www.jianshu.com/p/828dce8a99e0

关于es的安装请参考: https://www.jianshu.com/p/fd5f0101c434

我先创建一个叫local_mst_student_idx_1的索引,通过hand插件观察他的count条数为0.(详细见下图)

单条新增(指定_id):

URL:http://服务ip:端口/索引index/type/_id

单条新增(不指定_id):

URL:http://服务ip:端口/索引index/type

es会自动生成一个唯一的_id

批量新增:

关于批量新增我们需要创建一个.json的文件,里面构建json数据。(如下图)

通过postman请求:

注意:通过post请求body这时候需要选择bonary,然后选择我们刚刚创建的.json文件即可。(详细如下图)

点击执行我们可能会遇到下面这种情况,那是因为body的类型是text类型的,它不支持,我们点击下拉框改成JSON选项就ok了。

下面我展示一下执行批量新增的效果图:

上面明显的返回了我们新增的数据信息。

(注:批量新增可以在URL中指定index和type也可已在.json文件中指定;我上面是使用URL指定index和type的,官网文档案例是在.json文档中指定,大家可以参考一下。)

关于批量新增有啥疑问的可以参考官方文档:

https://www.elastic.co/guide/en/elasticsearch/reference/current/docs-bulk.html

执行完后我们通过hand插件观察Elasticsearch数据情况:(如下图)

很清晰的看出我们新增的数据已经全部到ES里面。

单个删除:

URL:http://服务ip:端口号/索引index/type/_id   (_id:指定删除)

单个删除比较简单:(如下图)

查询式删除:

通过条件查询删除某些符合条件的数据;我们测试把张三和王五删除掉。

关于批量删除有什么疑问的可以参考官方文档:

https://www.elastic.co/guide/en/elasticsearch/reference/current/docs-delete-by-query.html

执行成功后观察数据是否被删除:

ES修改操作有一种特殊;假如我们使用下图这种请求

通过观察我指定_id为4的数据进行修改,他只修改了我传参的stu_name字段,并把其他字段全部改为空了。

其实是这样的:

    当我们发送该请求后,如果不存在_id=4的文档数据,索引中将新建一个文档_id=4,如果索引中在之前已经存在_id=4的文档数据,新文档数据将覆盖历史文档数据。如果我们存入的文档id和已存在的文档id都不相同则不会影响。索引文档时,_id部分是可选的,我们上面也有案例,如果未指定,es将生成一个随机_id,然后用它来创建新文档。当然我可能不想要这种效果。别急下面我来讲解另外一种修改方式。

修改数据2:

这里我们发现和上面的请求有哪些不同,我们发现下面图片的 URL 的末尾多了一个_update请求命令.

这种更新其实也不是在原文档进行就地更新。es无论何时进行更新他都会删除旧文档,索引一个新文档来立刻替换它。当然es还提供了多条件的修改。我们可以参考官方文档去挖掘在此我就不详细的讲解了。

关于es多条件的修改可以参考官方文档:

https://www.elastic.co/guide/en/elasticsearch/reference/6.2/docs-update-by-query.html

关于增删改我们就讲到这,新的探索我会再第一时间给大家分享。

以上是关于Elasticsearch数据增删改的主要内容,如果未能解决你的问题,请参考以下文章

04-springboot整合elasticsearch初识-简单增删改查及复杂排序,分页,聚合操作

Elasticsearch在thinkphp5中的使用增删改查(模糊查询批量查询)

Elasticsearch数据增删改

ES 17 - (底层原理) Elasticsearch增删改查索引数据的过程

Elasticsearch增删改查

Spring Boot整合ElasticSearch实现增删改查基本示例