六、DSL操作ES
6.1、RESTful风格介绍

- REST(Representational State Transfer 表述性状态转移),是一组架构约束条件和原则,满足这些约束条件和原则的应用程序或设计就是RESTful。就是一种定义接口的规范。有以下特征:
- 基于HTTP
- 可以使用XML格式定义或JSON格式定义参数和返回值。
- 每一个URI代表1种资源。
- 客户端使用GET、POST、PUT、DELETE 4个表示操作方式的动词对服务端资源进行操作
- GET:用来获取资源
- POST:用来新建资源(也可以用于更新资源)
- PUT:用来新建资源
- DELETE:用来删除资源
- 假设现在有有一个/user资源
- get: /user/1 :查询
- delete: /user/1 :删除
- post: /user :添加、修改
- put: /user :添加、修改
6.2、DSL操作ES-操作索引库
相当于MySQL的数据库
6.2.1、添加索引
6.2.2、查询索引
6.2.3、删除索引
6.2.4、关闭索引
PS:当索引处于关闭状态,是不能添加文档的
6.2.5、打开索引
6.3、DSL操作ES-操作映射
6.3.1、数据类型
了解ES中字段有那些数据类型

- ES中包含两类数据类型:简单数据类型和复杂数据类型
1)简单数据类型
- 字符串
- 类型说明text可以分词,不支持聚合(统计)keyword不会分词,将全部内容作为一个词条,支持聚合(统计)
- 例如:有个文档(相当于表中的一条数据,其中一个字段的值是华为手机
- 数值(不一定分词)
- 类型说明long带符号的64位数其最小值为-263263,最大值为263263integer带符号的32为整数,其最小值为-231231,最大值为231231short带符号的16位整数,其最小值为-32,768,最大值为32,767byte带符号的8位整数,其最小值位-128,最大值为127double双精度64位IEEE 754浮点数,限制为有限制float单精度32位IEEE 754浮点数,限制为有限制half_float半精度IEEE 754浮点数,限制为有限制scale_float由a支持的有限浮点数long,由固定double比例因子缩放
- 布尔类型
- 二进制
- 日期
- 范围类型
- integer_range
- float_range
- long_range
- double_range
- date_range
2)复杂数据类型
- 数组
- 没有专用的array数据类型,任何一个字段的值,都可以被添加0个到多个,但是要求它们的类型必须一直,当类型一致,含有多个值存储到ES中会自动转化成数组类型
- 对象
- 如下所示

3)GEO数据类型
6.3.2、操作映射
添加映射
- 命令
- # 创建带映射(表结构)的索引库
- PUT person
- {
- "mappings": {
- "properties": {
- "name":{
- "type": "text"
- },
- "age":{
- "type": "integer"
- }
- }
- }
-
- }
复制代码
- 如下所示
查询映射
添加字段
- 命令
- PUT person/_mapping
- {
- "properties":{
- "sex":{
- "type":"keyword"
- }
- }
- }
复制代码
- 如下所示
- 再次查询映射
- PS:ES不能单独修改映射字段名称或类型,也不能单独删除某个字段,如果需要修改,直接删除整个索引库再重建
6.4、DSL操作ES-操作文档
6.4.1、添加文档
- 命令
- # 指定id
- POST person/_doc/1
- {
- "name":"张三",
- "age":18,
- "sex":"男"
- }
- # 不指定id
- POST person/_doc
- {
- "name":"翠花",
- "age":20,
- "sex":"女"
- }
复制代码
- 如下所示
6.4.2、查询文档
- 命令
- GET person/_doc/1 # 查询一个
- GET person/_search # 查询全部
复制代码
- 如下所示
6.4.3、修改文档
- 命令
- PUT person/_doc/1
- {
- "name":"如花",
- "age":20,
- "sex":"女"
- }
复制代码
- 如下所示
- 记得之前说过的
- ES不能单独修改映射字段名称或类型,也不能单独删除某个字段,如果需要修改,直接删除整个索引库再重建

6.4.4、删除文档
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作! |