【Elasticsearch】06 ES文档的基本操作CRUD 与批量操作

一、基本操作

1、概念讲解

Type 名, 约定都用_doc

Create: 如果ID 已经存在,会创建失败。

Index: 如果ID 不存在,创建新的文档。否则,先删除现有文档,再创建新的文档,版本会增加。

Update: 文档必须已经存在,更新只会对相应的字段做增量修改。

2、案例

操作具体实现
IndexPUT my_index/_doc/1{“user”:“mike”,“comment”:“I’m first study”}
CreatePUT my_index/_create/1 {“user”:“mike”,“comment”:“I’m first study”}
CreatePOST my_index/_doc {“user”:“mike”,“comment”:“I’m first study”} // 不指定ID 自动生成
ReadGET my_index/_doc/1
UpdatePost my_index/update/1 {“doc”:{“user”:“mike”,“comment”:“ES”}}
DeleteDELETE my_index/_doc/1

3、Create

  1. 支持自动生成文档ID 和指定文档ID 两种方式
  1. 通过调用“post/users/_doc” => 系统会自动生成document id
  1. 使用HTTP PUT user/_create/1创建时,URL 中显示指定_create,如果id文档已经存在,操作失败。
PUT user/_create/1
{
    "name":"flame",
    "address":"山西"
    "create_data":"2020/6/11"
    "tags":["a","b"]
}

4、GET

  1. 找到文档,返回HTTP 200

文档元信息

a:_index/_type/

版本信息,同一个id的文档。文档被删除Version 也会不断增加

_source: 文档的所有原始信息

  1. 文档不存在,HTTP 404
GET user/_doc/1

5、Index

  1. index 和 create 区别

index 如果文档不存在,就索引新的文档。否则现有文档会被删除,新的文档被索引,版本信息+1。

PUT user/_create/1
{
    "tags":["a","b","c"]
}

6、Update

  1. update 方法不会删除原来的文档,而是实现真正的数据更新。

Post 方法/Palyload 需要包含在“doc”中 必须指定doc

POST user/_update/1
{
    "doc":{
        "albums":["album1","album2"]
    }
}

二、Bulk API

1、支持在一次API调用中,对不同的索引进行操作。

2、支持四种类型

Index 、Create 、Update 、 Delete

3、可以在URL中指定Index,也可以在请求的Payload进行

4、操作单条失败,不影响其他操作

5、返回结果包含每一条操作执行的结果

6、Bulk 操作

POST _bulk
{"index":{"_index":"test","id":"1"}}
{"field1":"value1"}
{"delete":{"_index":"test","_id":"2"}}
{"create":{"_index":"test2","_id":"3"}}
{"field1":"value3"}
{"update":{"_id":"1"},"_index":"test"}
{"doc":{"field2":"value2"}}

三、批量操作

1、批量读取 -mget

批量操作,可以减少网络连接所产生的开销,提升性能。

GET _mget
{
    "docs":[
    {
        "index":"user",
        "id":1
    },
    {
        "index":"comment",
        "id":1
    }
    
    ]
}

2、批量查询 -msearch

POST users/_msearch
{}
{"query":{"match_all":{}},"from":0,"size":10}
{}
{"query":{"match_all":{}}}
{"index":"twitter2"}
{"query":{"match_all":{}}}

四、常见返回错误

问题原因
无法连接网络故障、集群不可用
连接无法关闭网络故障、节点出错
429集群过于繁忙
4xx请求格式有错
500集群内部错误
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值