美文网首页
Elasticsearch数据增删改

Elasticsearch数据增删改

作者: 咖啡厅的Boy | 来源:发表于2018-07-07 10:55 被阅读0次

说明:

    本文介绍 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

--Post http://127.0.0.1:9200/local_mst_student_idx_1/mst_student/1

json参数:

{ "id":"1", "stu_code":"1A0001", "stu_name":"张三 ", "stu_age":"18", "stu_date":"1528887157717", "stu_bool":"true" }

单条新增(不指定_id):

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

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

--Post http://127.0.0.1:9200/local_mst_student_idx_1/mst_student

json参数:

{ "id":"2", "stu_code":"1A0002", "stu_name":"李四", "stu_age":"28", "stu_date":"1528887157717", "stu_bool":"true" }

批量新增:

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

{"index":{"_id":"3"}}{"id":"3","stu_code":"1A0003","stu_name":"王五","stu_age":"20","stu_date":"1528887157717","stu_bool":"true"}{"index":{"_id":"4"}}{"id":"4","stu_code":"1A0004","stu_name":"赵六","stu_age":"21","stu_date":"1528887157717","stu_bool":"true"}{"index":{"_id":"5"}}{"id":"5","stu_code":"1A0005","stu_name":"孙七","stu_age":"22","stu_date":"1528887157717","stu_bool":"true"}

通过postman请求:

-- Post http://localhost:9200/local_mst_student_idx_1/mst_student/_bulk?pretty

注意:通过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:指定删除)

--DELETE  http://localhost:9200/local_mst_student_idx_1/mst_student/1/

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

查询式删除:

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

--POST  http://localhost:9200/local_mst_student_idx_1/mst_student/_delete_by_query?pretty

注意:这里请求中末尾我们使用的是_delete_by_query  API

json参数:

{ "query":{ "bool": { "filter": { "terms": { "_id": ["1","3"] } } } }}

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

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

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

修改数据1:

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

-- POST  http://localhost:9200/local_mst_student_idx_1/mst_student/4?pretty

json参数:

{ "stu_name": "Mack Li"}

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

其实是这样的:

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

修改数据2:

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

1.通过doc文档格式修改

-- POST  http://localhost:9200/local_mst_student_idx_1/mst_student/5/_update?pretty

JSON参数:

{ "doc":{"stu_name": "Mack Zhao","stu_age":"19"}}

2.通过脚本格式修改

-- POST  http://localhost:9200/local_mst_student_idx_1/mst_student/5/_update?pretty

{ "script": "ctx._source.stu_age = 24"}

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

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

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

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

相关文章

  • Elasticsearch数据增删改

    说明: 本文介绍 ElasticSearch 增加、删除、修改的使用示例。通过Restful 接口和 Post...

  • 关于python的list的增查删改

    说到增查删改,想起了数据库,我们在关系型数据库当中就会对表进行增查删改。 在python当中我们也可以对list进...

  • MYSQL数据库的增删改查

    MYSQL数据库的增删改查 一.对于库的增删改查 增create database 库名称;create data...

  • SQL查询结构总结

    SQL 增删改查 对数据库有修改的操作是:增删改 增 insert into 表名 values(); 删 del...

  • 数据库的存储

    如何创建数据库 数据库的增删改查 增insert into student (name,phone) values...

  • 表内容的操作

    对表数据进行增删改查(curd) 增(insert into): auto_increment自增长 SELECT...

  • Elasticsearch 与mysql数据同步

    简介 Elasticsearch有一系列的api,可以进行索引的建立,数据的增删改查等,当mysql插入数据的时候...

  • 增删改

    对于表中的操作,就是增删改查,查内容较多,这里先说增删改。 1.增(insert或者load) 即插入数据,多行插...

  • Elasticsearch-head插件安装

    Elasticsearch Head是es集群管理、数据可视化、增删改查、查询语句可视化工具。安装之前要先安装no...

  • JavaScript防篡改对象

    preventExtensions:不能增,能删改seal:不能增删,能改freeze:不能增删改 对象属性增删改...

网友评论

      本文标题:Elasticsearch数据增删改

      本文链接:https://www.haomeiwen.com/subject/nzpvuftx.html