Restful风格与索引的基本操作
一、Restful风格
一种软件架构风格,而不是标准,只是提供了一组设计原则和约束条件。它主要用于客户端和服务器交互类的软件。基于这个风格设计的软件可以更简洁,更有层次,更易于实现缓存等机制。
基本Rest命令说明:
method | url地址 | 描述 |
---|---|---|
PUT | localhost:9200/索引名称/类型名称/文档id | 创建文档(指定文档id) |
POST | localhost:9200/索引名称/类型名称 | 创建文档(随机文档id) |
POST | localhost:9200/索引名称/类型名称/文档id/_update | 修改文档 |
DELETE | localhost:9200/索引名称/类型名称/文档id | 删除文档 |
GET | localhost:9200/索引名称/类型名称/文档id | 查询文档通过文档id |
POST | localhost:9200/索引名称/类型名称/_search | 查询所有数据 |
二、关于索引的基本操作
创建一个索引
PUT /索引名/~类型名~/文档id
{
请求体
}
# PUT 创建命令 test1 索引 type1 类型 1 id
PUT /latte/type1/1
{
"name": "latteitcjz",
"age": 20
}
# 返回结果
# 警告信息: 不支持在文档索引请求中的指定类型
# 而是使用无类型的断点(/{index}/_doc/{id}, /{index}/_doc, or /{index}/_create/{id}).
{
"_index" : "latte", # 索引
"_type" : "type1", # 类型(已经废弃)
"_id" : "1", # id
"_version" : 1, # 版本
"result" : "created", # 操作类型
"_shards" : { # 分片信息
"total" : 2,
"successful" : 1,
"failed" : 0
},
"_seq_no" : 0,
"_primary_term" : 1
}
完成了自动增加了索引!数据也成功的添加了,这就是我说大家在初期可以把它当做数据库学习的原因!
那么 name 这个字段用不用指定类型呢。毕竟我们关系型数据库 是需要指定类型的啊 !
- 字符串类型
text 、 keyword - 数值类型
long, integer, short, byte, double, float, half_float, scaled_float - 日期类型
date - 布尔值类型
boolean - 二进制类型
binary - 等等…
指定字段的类型
创建规则
获得这个规则! 可以通过 GET 请求获取具体的信息!
查看默认的信息
如果自己的文档字段没有指定,那么es 就会给我们默认配置字段类型!
扩展: 通过命令 elasticsearch 索引情况! 通过GET _cat/ 可以获得es的当前的很多信息!
修改索引
# 只会修改指定项,其他内容保证不变
POST /test3/_doc/1/_update
{
"doc":{
"name": "张山"
}
}
# GET test3/_doc/1
{
"_index" : "test3",
"_type" : "_doc",
"_id" : "1",
"_version" : 2,
"_seq_no" : 1,
"_primary_term" : 1,
"found" : true,
"_source" : {
"name" : "张山",
"age" : 20,
"birth" : "1999-06-10"
}
}
曾经是用PUT,如果字段写不全(少写字段就会被丢弃)也就是覆盖原来的数据!
版本加1
现在的方法用POST,相应请求后面要加 _update ,只会更新提交的字段!
删除索引
通过DELETE 命令实现删除、 根据你的请求来判断是删除索引还是删除文档记录!