ES 批量操作bulk

1 介绍

主要介绍批量操作bulk,使用postman进行请求,接口请求的前缀地址统一为elasticsearch 部署IP地址+端口号(例如 http://192.168.51.4:9200) 。

2 批量操作bulk

2.1 基础语法

bulk操作和以往的普通请求格式有区别。指令一般都在一行,用换行符隔开,不是标准的JSON格式,这点需要注意。

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

2.2 批量操作类型

action 必须是以下选项之一:

  • create:如果文档不存在,那么就创建它,存在的话,就会报错,发生异常报错不会影响其他操作
  • index:创建一个新文档或者替换一个现有的文档
  • update:部分更新一个文档
  • delete:删除一个文档

metadata 中需要指定要操作的文档的 _index_type_id,同时_index_type也可在url中指定

2.3 操作演练

官方地址:https://www.elastic.co/guide/cn/elasticsearch/guide/current/bulk.html

  • create 新增文档数据,在metadata中指定index以及type

    POST /_bulk
    
    {"create":{"_index": "test","_type": "_doc","_id": "2001"}}
    {"id": "2001","nickname":"test-2001"}
    {"create":{"_index": "test","_type": "_doc","_id": "2002"}}
    {"id": "2002","nickname":"test-2002"}
    {"create":{"_index": "test","_type": "_doc","_id": "2003"}}
    {"id": "2003","nickname":"test-2003"}
    
  • create 创建已有id文档,在url中指定index和type

    POST /test/_doc/_bulk
    
    {"create":{"_id": "2004"}}
    {"id": "2004","nickname":"test-2004"}
    {"create":{"_id": "2005"}}
    {"id": "2005","nickname":"test-2005"}
    {"create":{"_id": "2006"}}
    {"id": "2006","nickname":"test-2006"}
    
  • index 创建,已有文档ID会被覆盖,不存在ID则新增

    POST /test/_doc/_bulk
    
    {"index":{"_id": "2005"}}
    {"id": "2005","nickname":"test-index"}
    {"index":{"_id": "2006"}}
    {"id": "2006","nickname":"test-2006"}
    {"index":{"_id": "2007"}}
    {"id": "2007","nickname":"test-2007"}
    
  • update 更新部分文档信息

    POST /test/_doc/_bulk
    
    {"update":{"_id": "2004"}}
    {"doc": {"id": "2004"}}
    {"update":{"_id": "2005"}}
    {"doc": {"nickname":"test-update"}}
    
  • delete 批量删除

    POST /test/_doc/_bulk
    
    {"delete":{"_id": "2004"}}
    {"delete":{"_id": "2005"}}
    
  • 综合批量操作

    POST /test/_doc/_bulk
    
    {"create":{"_index": "test","_type": "_doc","_id": "2009"}}
    {"id": "2009","nickname":"test-2009"}
    {"update":{"_id": "2005"}}
    {"doc": {"nickname":"test-update"}}
    {"id": "2001","nickname":"test-2001"}
    {"delete":{"_id": "2004"}}
    
    

3 相关信息

  • 博文不易,辛苦各位猿友点个关注和赞,感谢

猜你喜欢

转载自blog.csdn.net/qq_15769939/article/details/114818251
今日推荐