当前位置:   article > 正文

Elasticsearch 入门教程之基本操作新增、更新、删除(二)_elasticsearch新增数据

elasticsearch新增数据

目录

1、es命令访问方式和风格

1.1 es访问方式

1.2 Rest风格说明

2、新增操作

2.1 POST指定ID新增

2.2 POST不指定ID新增

2.3 PUT新增

3.更新

3.1 POST带_update

3.2 POST不带_update

3.3 PUT

4.删除

5.ES的批量操作——bulk

5.1 批量新增

5.1.1 index批量新增

5.1.2 create批量新增

5.1.2 create和index批量新增区别

5.2 批量更新

5.3 批量删除


1、es命令访问方式和风格

1.1 es访问方式

实际开发中,主要有三种方式可以作为es服务的客户端:

  • 使用elasticsearch-head插件
  • 使用elasticsearch提供的Restful接口直接访问
  • 使用elasticsearch提供的API进行访问

1.2 Rest风格说明

一种软件架构风格,而不是标准。更易于实现缓存等机制

methodurl地址描述
PUTlocalhost:9200/索引名称/类型名称/文档id创建文档(指定文档id)
POSTlocalhost:9200/索引名称/类型名称创建文档(随机文档id)
POSTlocalhost:9200/索引名称/类型名称/文档id/_update修改文档
DELETElocalhost:9200/索引名称/类型名称/文档id删除文档
GETlocalhost:9200/索引名称/类型名称/文档id通过文档id查询文档
POSTlocalhost:9200/索引名称/类型名称/_search查询所有的数据

2、新增操作

保存一个数据,保存在哪个索引的哪个类型下(哪张数据库哪张表下),保存时用唯一标识指定

2.1 POST指定ID新增

  1. POST /demo/person/1
  2. {
  3. "name":"王璐",
  4. "age":"35",
  5. "sex":"男"
  6. }

结论:指定ID新增,如果ID一样,数据不存在,是新增;数据存在,是更新;而且_seq_no和_version 每次调用值都会发送改变

2.2 POST不指定ID新增

  1. POST /demo/person/
  2. {
  3. "name":"王璐",
  4. "age":"35",
  5. "sex":"男"
  6. }

 结论:不指定ID,每次点击都会自动生成ID值,而且都是新增

2.3 PUT新增

  1. PUT /demo/person/3
  2. {
  3. "name":"张顺利",
  4. "age":"43",
  5. "sex":"女"
  6. }

结论:PUT可以新增也可以修改。PUT必须指定id;由于PUT需要指定id,我们一般用来做修改操作,不指定id会报错

总结:

  • POST新增。如果不指定id,会自动生成id。指定id就会修改这个数据,并新增版本号;

        可以不指定id,不指定id时永远为创建
        指定不存在的id为创建
        指定存在的id为更新,而版本号会根据内容变没变而觉得版本号递增与

  • PUT可以新增也可以修改。PUT必须指定id;由于PUT需要指定id,我们一般用来做修改操作,不指定id会报错。

        必须指定id
        版本号总会增加

  • 怎么记:put和java里map.put一样必须指定key-value。而post相当于mysql insert
  1. 返回数据:
  2. 带有下划线开头的,称为元数据,反映了当前的基本信息。
  3. {
  4. "_index" : "demo", 表明该数据在哪个数据库下;
  5. "_type" : "person",表明该数据在哪个类型下;
  6. "_id" : "3", 表明被保存数据的id
  7. "_version" : 1, 被保存数据的版本
  8. "result" : "create",数据的状态创建还是更新
  9. "_shards" : {
  10. "total" : 2,
  11. "successful" : 1,
  12. "failed" : 0
  13. },
  14. "_seq_no" : 1, 而序列号"_seq_no"则可以看做是索引的信息 在第一次为索引插入数据时为0,每对索引内数据操作成功一次sqlNO加1, 并且文档会记录是第几次操作使它成为现在的情况的
  15. "_primary_term" : 1
  16. }

3.更新

3.1 POST带_update

  1. #其他值不传,不会修改其他值
  2. POST /demo/person/1/_update
  3. {
  4. "doc":{
  5. "name" : "王璐",
  6. "age" : "49"
  7. }
  8. }

3.2 POST不带_update

  1. #方式一
  2. POST /demo/person/1
  3. {
  4. "name" : "王璐",
  5. "age" : "40"
  6. }
  7. #方式二
  8. POST /demo/person/1
  9. {
  10. "doc":{
  11. "name" : "王璐",
  12. "age" : "35"
  13. }
  14. }

3.3 PUT

  1. PUT demo/person/1
  2. {
  3. "doc":{
  4. "name":"王璐",
  5. "age":"49"
  6. }
  7. }

4.删除

  1. #删除文档
  2. DELETE /demo/person/1
  3. #删除索引
  4. DELETE /demo

注:elasticsearch并没有提供删除类型的操作,只提供了删除索引和文档的操作。

5.ES的批量操作——bulk

语法格式:

action:index/create/update/delete

metadata:_index,_type,_id

request body:_source (删除操作不需要加request body)

                   { action: { metadata }}

                   { request body        }

5.1 批量新增

5.1.1 index批量新增

  1. POST _bulk
  2. {"index":{"_index":"mysql","_type":"student","_id":"1"}}
  3. {"name":"李四","age":23}
  4. {"index":{"_index":"mysql","_type":"student","_id":"2"}}
  5. {"name":"李五","age":33}

5.1.2 create批量新增

  1. POST _bulk
  2. {"create":{"_index":"mysql","_type":"student","_id":"3"}}
  3. {"name":"王一","age":34}
  4. {"create":{"_index":"mysql","_type":"student","_id":"4"}}
  5. {"name":"鲁尔","age":32}

5.1.2 create和index批量新增区别

  1. POST _bulk
  2. {"index":{"_index":"mysql","_type":"student","_id":"1"}}
  3. {"name":"李四","age":23}
  4. {"create":{"_index":"mysql","_type":"student","_id":"1"}}
  5. {"name":"王一","age":34}

结论 

create 创建操作,如果需要创建的文档已经存在,那么创建失败
index 创建或替换操作,如果要创建的文档不存在则执行创建操作,如果已经存在则执行替换操作

5.2 批量更新

  1. POST _bulk
  2. {"update":{"_index":"mysql","_type":"student","_id":"1"}}
  3. {"doc":{"name":"王二","age":34}}
  4. {"update":{"_index":"mysql","_type":"student","_id":"10"}}
  5. {"doc":{"name":"李四","age":22}}

通过 _bulk 批量更新索引中的文档数据,其中一条更新成功,一条因为无法获取对应ID的文档,更新失败 

5.3 批量删除

  1. POST _bulk
  2. {"delete":{"_index":"mysql","_type":"student","_id":1}}

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/笔触狂放9/article/detail/325702
推荐阅读
相关标签
  

闽ICP备14008679号