一、文档批量操作
这里多个文档是指,批量操作多个文档,搜索查询文档将在之后的章节讲解
1.批量获取文档数据
批量获取文档数据是通过_mget的API来实现的
(1)在URL中不指定index和type
- 请求方式:GET
- 请求地址:_mget
- 功能说明 : 可以通过ID批量获取不同index和type的数据
请求参数:
- docs : 文档数组参数
- _index : 指定index
- _type : 指定type
- _id : 指定id
- _source : 指定要查询的字段
1 GET _mget2 {3 “docs”: [4 {5 “_index”: “es_db”,6 “_type”: “_doc”,7 “_id”: 18 },9 {10 “_index”: “es_db”,11 “_type”: “_doc”,12 “_id”: 213 }14 ]15 } |
响应结果如下:
1 {2 “docs” : [3 {4 “_index” : “es_db”,5 “_type” : “_doc”,6 “_id” : “1”,7 “_version” : 3,8 “_seq_no” : 7,9 “_primary_term” : 1,10 “found” : true,11 “_source” : {12 “name” : “张三666”,13 “sex” : 1,14 “age” : 25,15 “address” : “广州天河公园”,16 “remark” : “java developer”17 }18 },19 {20 “_index” : “es_db”,21 “_type” : “_doc”,22 “_id” : “2”,23 “_version” : 1,24 “_seq_no” : 1,25 “_primary_term” : 1,26 “found” : true,27 “_source” : {28 “name” : “李四”,29 “sex” : 1,30 “age” : 28,31 “address” : “广州荔湾大厦”,32 “remark” : “java assistant”33 }34 }35 ]36 } |
(2)在URL中指定index
- 请求方式:GET
- 请求地址:/{{indexName}}/_mget
- 功能说明 : 可以通过ID批量获取不同index和type的数据请求参数:
docs : 文档数组参数
- _index : 指定index
- _type : 指定type
- _id : 指定id
- _source : 指定要查询的字段
1 GET /user/_mget2 {3 “docs”: [4 {5 “_type”:”_doc”,6 “_id”: 37 },8 {9 “_type”:”_doc”,10 “_id”: 411 }12 ]13 } |
(3)在URL中指定index和type
- 请求方式:GET
- 请求地址:/{{indexName}}/{{typeName}}/_mget
- 功能说明 : 可以通过ID批量获取不同index和type的数据
请求参数:
- docs : 文档数组参数
- _index : 指定index
- _type : 指定type
- _id : 指定id
- _source : 指定要查询的字段
1 GET /es_db/_doc/_mget2 {3 “docs”: [4 {5 “_id”: 16 },7 {8 “_id”: 29 }10 ]11 } |
2.批量操作文档数据
批量对文档进行写操作是通过_bulk的API来实现的
- 请求方式:POST
- 请求地址:_bulk
- 请求参数:通过_bulk操作文档,一般至少有两行参数(或偶数行参数)
- 第一行参数为指定操作的类型及操作的对象
(index,type和id)
- 第二行参数才是操作的数据
参数类似于:
1 {“actionName”:{“_index”:”indexName”, “_type”:”typeName”,”_id”:”id”}}2 {“field1″:”value1”, “field2″:”value2”} |
- actionName:表示操作类型,主要有create,index,delete和update
(1)批量创建文档create
1 POST _bulk2 {“create”:{“_index”:”article”, “_type”:”_doc”, “_id”:3}}3 {“id”:3,”title”:”老师1″,”content”:”老师666″,”tags”:[“java”, “面向对象”],”create_time”:155402530}4 {“create”:{“_index”:”article”, “_type”:”_doc”, “_id”:4}}5 {“id”:4,”title”:”老师2″,”content”:”老师NB”,”tags”:[“java”, “面向对象”],”create_time”:15542530} |
(2)普通创建或全量替换index
1 POST _bulk2 {“index”:{“_index”:”article”, “_type”:”_doc”, “_id”:3}}3 {“id”:3,”title”:”老师(一)”,”content”:”老师666″,”tags”:[“java”, “面向对象”],”create_time”:1552530}4 {“index”:{“_index”:”article”, “_type”:”_doc”, “_id”:4}}5 {“id”:4,”title”:”老师(二)”,”content”:”老师NB”,”tags”:[“java”, “面向对象”],”create_time”:1552530} |
- 如果原文档不存在,则是创建
- 如果原文档存在,则是替换(全量修改原文档)
(3)批量删除delete
1 POST _bulk2 {“delete”:{“_index”:”article”, “_type”:”_doc”, “_id”:3}}3 {“delete”:{“_index”:”article”, “_type”:”_doc”, “_id”:4}} |
(4)批量修改update
1 POST _bulk2 {“update”:{“_index”:”article”, “_type”:”_doc”, “_id”:3}}3 {“doc”:{“title”:”ES大法必修内功”}}4 {“update”:{“_index”:”article”, “_type”:”_doc”, “_id”:4}}5 {“doc”:{“create_time”:15508}} |
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。