Elasticsearch的实战快速入门CRUD篇

前面介绍了ES的一大堆知识点,什么分布式、什么各种名字的概念,今天就先来感受下,看几个核心API,看看增删改查的语法以及格式。

一、增

1、两种方式

1.1、create

1.1.1、啥意思

创建的时候,如果该document的id已经存在,则创建失败。

1.1.2、语法
PUT index/type/_create/id
{
	"key", "value"
}

Elasticsearch7.x开始已经将type的概念移除了,不能自定义,每个index只能是默认的不可修改的名叫_doc的type,所以语法变成了如下:

PUT index/_create/id
{
	"key", "value"
}

不能写PUT index/_doc/_create/id,否则会报错,必须要省略_doc,原因目前我没去管,因为无伤大雅。

1.1.3、案例
PUT test_index/_create/1
{
  "name": "java",
  "age":  35,
  "hobbies": ["game", "read books"]  
}

在这里插入图片描述
这时候我们再次执行上面的ES语句,会发现报错了,因为_create发现id存在不会覆盖,而是报错。如下:
在这里插入图片描述

1.2、index

1.2.1、啥意思

创建的时候,如果该document的id已经存在,则覆盖老的,相当于先给他删除在重新创建,并且version版本号字段+1。

1.2.2、语法
PUT index/id
{
	"key", "value"
}
1.2.3、案例
PUT test_index/1
{
  "name": "python",
  "age":  22,
  "hobbies": ["xxx", "ooo"]  
}

在这里插入图片描述
为啥是2?因为用的上面_create的那条数据,id=1的document已经存在了,再次执行ES语句的话就是3了。

二、删

1、语法

ELETE index/_doc/id

2、案例

DELETE test_index/_doc/1

在这里插入图片描述
删除怎么版本号还+1了?数据没删掉?删掉了的!你在get也查不到,为啥版本号+1?猜也能猜到不是立即删除,只是标记了状态位而已。

如果再次执行下删除语句,则报404了,找不到啦~!

三、改

1、覆盖式修改

1.1、啥意思

就是最上面【增】的index方式,直接全部覆盖。不多bb了。

2、选择性修改

2.1、啥意思

就是想更新哪个字段就更新哪个字段,不想更新的字段也不用写进去,简单方便。

2.2、语法

POST index/_update/id
{
	"doc": {
		"key", "value"
	}
}

2.3、案例

POST test_index/_update/1
{
  "doc": {
    "name": "go"
  }
}

在这里插入图片描述
我们通过GET去查的时候name就是新的go了,如下:
在这里插入图片描述

四、查

1、语法

# 查全部
GET index/_search
# 查某条
GET index/_doc/id

2、案例

# 查id=1的记录
GET test_index/_doc/1
# 查test_index索引的全部记录
GET test_index/_search

在这里插入图片描述

五、批量API

ES当然不是只支持这么几个crud,支持相当复杂的聚合以及批量查询等等各种搜索分析的语法,后面逐步介绍!

六、常见错误码

在这里插入图片描述

【微信公众号】
在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

【原】编程界的小学生

没有打赏我依然会坚持。

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值