一 前言
【数据库系列】上篇我们讲到如何Elasticsearch是什么以及如何搭建,那么本篇我们来讲讲Elasticsearch的基本操作。
我在刚开始工作时,公司就是用的Elasticsearch做数仓,当时在学校只学过Mysql,对于Elasticsearch完全没有一点概念,造数全靠开发写好的脚本,总之当时对这一块就很懵逼。
然后在后面对MySql逐渐熟练之后,再重新学习Elasticsearch,将学习MySql的经验套用过来,才发现可以这么好的理解
代码语言:javascript复制Elasticsearch -> Indeces(索引) -> Types(类型) -> Documents(文档) -> Fields(属性)
关系型数据库 -> Databases(库) -> Tables(表) -> Rows(行) -> Columns(列)
二 索引操作
1、API检测集群是否健康
方法:get
请求:http://127.0.0.1:9200/_cat/health?v
响应:
2、获取集群的节点列表
方法:get
请求:http://127.0.0.1:9200/_cat/nodes?v
响应:
3、创建索引
方法:put
请求:http://127.0.0.1:9200/person
注意:默认情况下,创建的索引分片数量是 5 个,副本数量是 1 个。可以通过如下方式修改默认值:number_of_shards 分片 number_of_replicas 备份
代码语言:javascript复制{ "settings": { "number_of_shards": 6, "number_of_replicas": 2 }}
响应:
4、查看所有索引
方法:get
请求:http://127.0.0.1:9200/_cat/indices?v
响应:
说明:这里请求路径中的_cat 表示查看的意思,indices 表示索引,所以整体含义就是查看当前服务器中的所有索引。
响应字段 | 说明 |
---|---|
health | green(集群完整) yellow(单点正常、集群不完整) red(单点不正常) |
status | 是否能使用 |
index | 索引名 |
uuid | 索引统一编号 |
pri | 主节点几个 |
rep | 从节点几个 |
docs.count | 文档数 |
docs.deleted | 文档被删了多少 |
store.size | 整体占空间大小 |
pri.store.size | 主节点占空间 |
5、查看单个索引
方法:get
请求:http://127.0.0.1:9200/person
响应:
6、删除索引
方法:delete
请求:http://127.0.0.1:9200/person
响应:
三 文档操作
文档:即索引库中某个类型下的数据,类比做数据库中的每一行数据。
1、创建文档
方法:post
请求:http://127.0.0.1:9200/person/_doc/1
代码语言:javascript复制{ "name":"张艺兴", "age":30}
响应:
说明:此处发送请求的方式必须为 post,不能是 put,否则会发生错误。这里是因为put是一个幂等的请求,post生成的id是随机的。使用JMeter创建文档时注意设置编码:utf-8,否则中文会变成???
2、查看单个文档
方法:get
请求:http://127.0.0.1:9200/person/_doc/1
响应:
说明:查看文档时,需要指明文档的唯一性标识,类似于 MySQL 中数据的主键查询。
3、查看多个文档
方法:get
请求:http://127.0.0.1:9200/mapping/_search
响应:
4、修改文档
方法:post
请求:http://127.0.0.1:9200/person/_doc/1
代码语言:javascript复制{ "name":"张艺兴超级帅!", "age":300}
响应:
5、删除文档
方法:delete
请求:http://127.0.0.1:9200/person/_doc/1
响应:
四 总结
我发现学新技术没以前这么坎坷了,可以很快的上手悟出来,这个因为在学习其它技术过程中提升了自己的总结能力,形成了一个正向循环的过程,这种感觉太棒了!
下篇我们来讲讲如何用Java来操作Elasticsearch~