(一)RESTful风格介绍
Restful就是一个资源定位及资源操作的风格。不是标准也不是协议,只是一种风格。基于这个风格设计的软件可以更简洁,更有层次,可以降低开发的复杂性,提高系统的可伸缩性。
特点:
1.基于http协议
2.使用XML格式定义或JSON格式定义
3.每一个URI代表1种资源。
4.客户端使用GET、POST、PUT、DELETE 4个表示操作方式的动词对服务端资源进行操作:
GET:用来获取资源
POST:用来新建资源(也可以用于更新资源)
PUT:用来更新资源
DELETE:用来删除资源
(二)操作索引
1 创建索引(PUT)
http://ip:端口/索引名称
案例:
http://192.168.126.20:9200/index_01
Kibana
2 查询索引(GET)
GET http://ip:端口/索引名称 # 查询单个索引信息
GET http://ip:端口/索引名称1,索引名称2... # 查询多个索引信息
GET http://ip:端口/_all # 查询所有索引信息
kibana
3 删除索引(DELETE)
DELETE http://ip:端口/索引名称
DELETE /_all 删除全部
kibana
4 关闭、打开索引(了解)
POST http://ip:端口/索引名称/_close
POST http://ip:端口/索引名称/_open
kibana
(三)ElasticSearch 数据类型
1 简单数据类型
数据类型 | 备注 |
---|---|
字符串 | text :会分词,不支持聚合 相当于mysql 中的sum(求和)avg,max,min |
keyword:不会分词,将全部内容作为一个词条,支持聚合 | |
数值 | byte, short, integer, long, float, double |
布尔 | boolean |
范围类型 | integer_range, float_range, long_range, double_range, date_range |
日期 | date |
2 复杂数据类型
数据类型 | 备注 |
---|---|
数组: [ ] | nested (for arrays of JSON objects 数组类型的JSON对象) |
对象:{ } | object(for single JSON objects 单个JSON对象) |
(四)操作映射
1 查询映射
GET /索引的名称/_mapping
2 创建映射
2.1 创建索引后添加映射
个不推荐:写索引时没有提示
#创建索引
PUT /person
#查看索引
GET /person
#查看映射
GET /person/_mapping
#给已经存在的索引person添加映射
PUT /person/_mapping
{
"properties":{
"name":{
"type":"text"
},
"age":{
"type":"integer"
},
"birthday":{
"type":"date"
}
}
}
2.2 创建索引并添加映射(推荐)
#给person添加映射
PUT /person2
{
"mappings": {
"properties": {
"name":{
"type":"text"
},
"age":{
"type":"integer"
},
"birthday":{
"type":"date"
}
}
}
}
#查索引
GET /person2
添加字段 (修改映射结构)
#给创建好的索引添加字段
PUT /person2/_mapping
{
"properties":{
"address":{
"type":"text"
}
}
}
总结:在实际当中 ,我们很少操作映射,一般都是使用API方式操作文档,所以以上的操作只需要能看懂就可以。
(五) 操作文档
1 查询文档
#根据id查询具体的文档
语法: GET /索引的名称/_doc/文档的id
案例: GET /person1/_doc/1
#查询所有的文档
语法:GET /索引名称/_search
案例:GET /person1/_search
2 添加文档,指定id
#语法:POST /索引的名称/文档的类型/文档的id
POST /person/_doc/1003
{
"birthday":"2009-11-15",
"name":"uuuuu",
"age":24
}
#查询文档
GET /person1/_doc/1003
添加文档,不指定id
#添加文档,不指定id(同时也是修改,不存在添中,存在则修改)
POST /person1/_doc/
{
"name":"张三",
"age":18,
"address":"北京"
}
#查询所有文档
GET /person1/_search
3 删除文档
#删除指定id文档
DELETE /person1/_doc/1
官方文档:
https://www.elastic.co/guide/en/elasticsearch/reference/6.0/getting-started.html