欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

elasticsearch的mget的批量查询和bulk的批量新增和批量更新以及批量删除

程序员文章站 2022-05-25 20:49:51
...

elasticsearch的批量查询

一、使用mget批量获取

1.通过mget实现批量查询,并且可以通过found字段返回的数据判断数据是否存在,如果返回false则表示数据不存在,返回true则表示数据存在

POST 192.168.1.117:9200/sell/_doc/_mget

{
	"ids": ["1001", "1003", "10015"]
}

elasticsearch的mget的批量查询和bulk的批量新增和批量更新以及批量删除

二、使用bulk批量操作数据

bulk官方文档

基本语法
bulk操作和以往的普通请求格式有区别。不要格式化json,不然就不在同一行了,这个需要注意。

{ action: { metadata }}\n
{ request body }\n
{ action: { metadata }}\n
{ request body }\n …

  • { action: { metadata }} 代表批量操作的类型,可以是新增、删除或修改
  • \n 是每行结尾必须填写的一个规范,每一行包括最后一行都要写,用于es的解析
  • { request body } 是请求body,增加和修改操作需要,删除操作则不需要

1.批量新增:create,如果文档不存在,那么就创建它。存在会报错。发生异常报错不会影响其他操作。注意细节最后新增的数据集的回车,光标不能数据在最后一行否则会报错,如下截图

POST 192.168.1.117:9200/sell2/_doc/_bulk

{"create": {"_id": "3001"}}
{"id": "3001", "nickname": "name-3001"}
{"create": {"_id": "3002"}}
{"id": "3002", "nickname": "name-3002"}
{"create": {"_id": "3003"}}
{"id": "3003", "nickname": "name-3003"}

elasticsearch的mget的批量查询和bulk的批量新增和批量更新以及批量删除
2.批量新增:index,创建一个新文档或者替换一个现有的文档。注意细节最后新增的数据集的回车,光标不能数据在最后一行否则会报错,如下截图

POST 192.168.1.117:9200/sell2/_doc/_bulk

{"index": {"_id": "3001"}}
{"id": "3001", "nickname": "name-3001"}
{"index": {"_id": "3002"}}
{"id": "3002", "nickname": "name-3004"}
{"index": {"_id": "3005"}}
{"id": "3005", "nickname": "name-3005"}

elasticsearch的mget的批量查询和bulk的批量新增和批量更新以及批量删除
3.批量修改:update,创部分更新一个文档。注意细节最后新增的数据集的回车,光标不能数据在最后一行否则会报错,如下截图

192.168.1.117:9200/sell2/_doc/_bulk

{"update": {"_id": "2001"}}
{"doc": {"id": "3003"}}
{"update": {"_id": "2001"}}
{"doc": {"nickname": "name-12312312"}}

elasticsearch的mget的批量查询和bulk的批量新增和批量更新以及批量删除

4.批量删除:delete,删除一个文档,注意细节最后新增的数据集的回车,光标不能数据在最后一行否则会报错,如下截图

192.168.1.117:9200/sell2/_doc/_bulk

{"delete": {"_id": "3001"}}
{"delete": {"_id": "3002"}}

elasticsearch的mget的批量查询和bulk的批量新增和批量更新以及批量删除5.bulk的批量操作一起使用

POST 192.168.1.117:9200/sell2/_doc/_bulk

{"delete":{"_id": "1001"}}
{"delete":{"_id": "1003"}}
{"create": {"_id": "8008"}}
{"id": "8008", "nickname": "name-3001"}
{"update": {"_id": "1008"}}
{"doc": {"id": "2222"}}

elasticsearch的mget的批量查询和bulk的批量新增和批量更新以及批量删除

相关标签: elasticsearch es