Es学习第三课, ElasticSearch基本的增删改查
2024-08-25 07:22:27
前面两课我们了解了ES的基本概念并且学会了安装ES,这节课我们就来讲讲ES基本的增删改查;ES主要对外界提供的是REST风格的API,我们通过客户端操作ES本质上就是API的调用。在第一课我们就讲了索引、类型和文档的含义,它们分别对应MYSQL的数据库、表和一行数据。所以,我们在讲ES的API时,大家可以按照MYSQL的SQL语句对应做理解。
ES Restful API GET、POST、PUT、DELETE、HEAD含义(这几个是API的基本概念):
1)GET:获取请求对象的当前状态。
2)POST:改变对象的当前状态。
3)PUT:创建一个对象。
4)DELETE:销毁对象。
5)HEAD:请求获取对象的基础信息。
下面我们就利用Kibana的图形化界面,来展示下ES的基本API。
1、新建一个索引(类似mysql 新建数据库)
PUT /lib/
{
"settings":{
"index": {
"number_of_shards":3,
"number_of_replicas":1
}
}
}
或者简单点,使用默认的分片和复制,可以直接
PUT lib2
这样也可以生成索引
执行成功后,会显示如下:
{
"acknowledged": true,
"shards_acknowledged": true,
"index": "lib"
}
其中,lib表示索引名称,PUT 参数里的number_of_shards表示分片数量,number_of_replicas表示复制备份数量。
2、查询索引
GET /lib/_settings #查询索引lib的设置, GET _all/_settings #查询所有的索引设置
3、添加文档(类似MYSQL添加一条数据)
PUT /lib/user/1
{
"name" : "kakatadage",
"age" : 33,
"about": "I like football!",
"interests" : ["girls","football"]
}
使用PUT添加,其中user表示类型(type),1代表这条数据的主键;如果id不填也可以,ES会自动生成一条主键,不过这时就不能用PUT了,需要使用POST添加
执行成功,结果如下:
{
"_index": "lib",
"_type": "user",
"_id": "1",
"_version": 1,
"result": "created",
"_shards": {
"total": 2,
"successful": 1,
"failed": 0
},
"_seq_no": 0,
"_primary_term": 1
}
4、查询文档
GET /lib/user/1 //查询ID为1的数据
5、修改文档
PUT /lib/user/1 //PUT方式进行修改,这种是把原来对应文档覆盖掉
{
"name" : "kakatadage",
"age" : 30,
"about": "I like money!",
"interests" : ["music","money"]
}
POST /lib/user/1/_update //POST方式修改的话,可以针对对应field来修改,比PUT要轻量
{
"doc": {
"age" :32
}
}
6、删除文档或索引
DELETE lib/user/1 //删除一个文档
DELETE lib2 //删除索引
好了,基本的增删改查我们讲完了,是不是和SQL很类似,很简单?不过理解简单,实际使用还是要有大量的操作实践才行,而且实际生产环境中,都是各种复杂查询,后面我们会专门用几节课来讲。
最新文章
- angular开发单页面应用--页面资源部分
- Sql Server 中锁的概念
- 10月16日上午MySQL数据库基础操作(创建、删除)
- CentOS 6.4 搭建git 服务器
- forms6 builder安装之后设置注册表开发环境
- 016. asp.net的验证控件
- Ioc 控制反转 实例
- CodeForces Round #179 (295A) - Greg and Array
- JAVA中的char类型
- Flash加载ini文件!
- mybatis与spring的整合(使用接口实现crud)
- VS 提示对象被多次指定;已忽略多余的指定
- [转帖]震惊,用了这么多年的 CPU 利用率,其实是错的
- jmeter 压力测试(二) 获取不同格式的当前时间
- 基于scrapy-redis分布式爬虫(简易)
- win7启动时怎么自动进入桌面
- Qt 4.6.2静态编译
- css文件 如何使背景图片大小适应div的大小
- Java开源博客My-Blog之docker容器组件化修改
- SQLAlchemy(2) -- SQLAlchemy的安装