ToB企服应用市场:ToB评测及商务社交产业平台
标题:
02-DSL操作Elasticsearch入门
[打印本页]
作者:
立山
时间:
2022-8-30 19:26
标题:
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 :添加、修改
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,最大值为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比例因子缩放
布尔类型
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
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
复制代码
如下所示
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
欢迎光临 ToB企服应用市场:ToB评测及商务社交产业平台 (https://dis.qidao123.com/)
Powered by Discuz! X3.4