02-DSL操作Elasticsearch入门
作者:互联网
六、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
:添加、修改
- get:
6.2、DSL操作ES-操作索引库
相当于MySQL的数据库
6.2.1、添加索引
- 命令
PUT goods_index
- 如下所示
6.2.2、查询索引
- 命令
GET goods_index
- 如下所示
6.2.3、删除索引
- 命令
delete goods_index
- 如下所示
6.2.4、关闭索引
PS:当索引处于关闭状态,是不能添加文档的
- 命令
POST goods_index/_close
- 如下所示
6.2.5、打开索引
- 命令
POST goods_index/_open
- 如下所示
6.3、DSL操作ES-操作映射
6.3.1、数据类型
了解ES中字段有那些数据类型
- ES中包含两类数据类型:简单数据类型和复杂数据类型
1)简单数据类型
-
字符串
-
类型 说明 text 可以分词,不支持聚合(统计) keyword 不会分词,将全部内容作为一个词条,支持聚合(统计) -
例如:有个文档(相当于表中的一条数据,其中一个字段的值是华为手机
- text:华为、手机
- keyword:华为手机
-
-
数值(不一定分词)
-
类型 说明 long 带符号的64位数其最小值为-263263,最大值为263263 integer 带符号的32为整数,其最小值为-231231,最大值为231231 short 带符号的16位整数,其最小值为-32,768,最大值为32,767 byte 带符号的8位整数,其最小值位-128,最大值为127 double 双精度64位IEEE 754浮点数,限制为有限制 float 单精度32位IEEE 754浮点数,限制为有限制 half_float 半精度IEEE 754浮点数,限制为有限制 scale_float 由a支持的有限浮点数long,由固定double比例因子缩放 -
布尔类型
boolean
-
二进制
binary
-
日期
date
-
范围类型
integer_range
float_range
long_range
double_range
date_range
-
2)复杂数据类型
- 数组
- 没有专用的
array
数据类型,任何一个字段的值,都可以被添加0个到多个,但是要求它们的类型必须一直,当类型一致,含有多个值存储到ES中会自动转化成数组类型
- 没有专用的
- 对象
- 如下所示
3)GEO数据类型
- 地理位置坐标值
geo_point
6.3.2、操作映射
添加映射
-
命令
-
# 创建带映射(表结构)的索引库 PUT person { "mappings": { "properties": { "name":{ "type": "text" }, "age":{ "type": "integer" } } } }
-
-
如下所示
查询映射
-
命令
-
GET person/_mapping
-
-
如下所示
添加字段
-
命令
-
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":"女" }
-
-
如下所示
- 指定id
- 不指定id
- 指定id
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、删除文档
-
命令
-
DELETE person/_doc/1
-
-
如下所示
标签:02,索引,数据类型,如下,person,DSL,Elasticsearch,所示,ES 来源: https://www.cnblogs.com/OnlyOnYourself-lzw/p/16504246.html