文章目录
- 一、DSL操作ES-RESTful风格
- 二、DSL操作索引库
- 2.1 PUT 添加索引
- 2.2 GET 查询索引
- 2.3 DELETE 删除索引
- 2.4 POST 打开/关闭索引库
- 三、DSL操作映射
- 3.1 数据类型
- 3.1.1 简单数据类型
- 3.1.2 复杂数据类型
- 3.2 创建索引库并设置映射
- 3.2.1 语法格式
- 3.2.2 举例
- 3.3 查询索引库映射
- 3.3.1 语法格式
- 3.3.2 举例
- 3.4 增加映射字段
- 3.4.1 语法格式
- 3.4.2 举例
- 四、DSL操作文档
- 4.1 添加文档
- 4.1.1 指定id
- 4.1.1.1 语法格式
- 4.1.1.2 举例
- 4.1.2 不指定id
- 4.1.2.1 语法格式
- 4.1.2.2 举例
- 4.2 查询文档
- 4.2.1 查询单个
- 4.2.2 查询全部
- 4.3 修改文档
- 4.3.1 语法格式
- 4.3.2 举例
- 4.4 删除文档
- 4.4.1 语法格式
- 4.4.2 举例
- 五、Kibana客户端提示#! 解决
- 5.1 问题
- 5.2 解决方案
一、DSL操作ES-RESTful风格
二、DSL操作索引库
# 新增索引库语法
PUT 索引库名
# 查询索引库
GET 索引库名
# 删除索引库
DELETE 索引库名
# 关闭索引库(注意:关闭索引库不能更改数据)
POST 索引库名/_close
# 开放索引库
POST 索引库名/_open
2.1 PUT 添加索引
PUT goods_index
2.2 GET 查询索引
GET goods_index
2.3 DELETE 删除索引
DELETE goods_index
2.4 POST 打开/关闭索引库
关闭索引
POST goods_index/_close
打开索引库
POST goods_index/_open
三、DSL操作映射
3.1 数据类型
3.1.1 简单数据类型
1.字符串-text:可以分词,不支持聚合(统计)
分词的数据,内容较为复杂,统计没有意义
2.字符串-keyword:不会分词,将全部内容作为一个词条,支持聚合(统计)
例如:有个文档(相当于数据库一条数据),其中一个字段的值是华为手机
text: 华为、手机
keyword: 华为手机
3.数值
4.布尔(boolean)
5.二进制(binary)
6.范围类型(integer_range, float_range, long_range, double_range, date_range)
7.日期(date)
3.1.2 复杂数据类型
1.数组 []:没有专用的array数据类型,任何一个字段的值,都可以被添加0个到多个,但要求他们的类型必须一致,当类型一直含有多个值存储到ES中会自动转化成数组类型 [“eric”,“jack”] List Set
2.对象 {} Map User {key:value,key:value}
3.GEO: geo_point 地理位置坐标值
小结:
1.text:适用于分词的场景
2.keyword:适用于结构化精确的查询
3.数字:适合范围查询
4.boolean:适合true或false
5.geo_point:地理位置坐标值
3.2 创建索引库并设置映射
3.2.1 语法格式
# 创建索引库并设置映射语法
PUT person
{
"mappings": {
"properties": {
"属性名":{
"type": "数据类型"
},
...
}
}
}
3.2.2 举例
#创建索引库并且设置映射(创建person索引库,映射两个字段name、age)
PUT person
{
"mappings": {
"properties": {
"name":{
"type": "text"
},
"age":{
"type": "integer"
}
}
}
}
3.3 查询索引库映射
3.3.1 语法格式
# 查询索引库映射语法
GET 索引库名/_mapping
3.3.2 举例
# 查询索引库映射
GET person/_mapping
3.4 增加映射字段
3.4.1 语法格式
# 增加映射字段语法
PUT 索引库名/_mapping
{
"properties": {
"新增属性名":{
"type": "数据类型"
}
}
}
3.4.2 举例
#增加映射字段
PUT person/_mapping
{
"properties":{
"sex":{
"type":"keyword"
}
}
}
注意:一旦涉及到ES的映射的字段修改或删除,都必须重建索引库
注意:ES不能单独修改映射字段名称或类型,不能单独删除某个字段,如果需要修改,直接删除整个索引库再重建
四、DSL操作文档
4.1 添加文档
4.1.1 指定id
4.1.1.1 语法格式
# 添加文档,指定id
POST 索引库名/_doc/指定id
{
"属性名":属性值,
...
}
4.1.1.2 举例
POST person/_doc/1
{
"name":"张三",
"age":18,
"sex":"男"
}
4.1.2 不指定id
4.1.2.1 语法格式
# 添加文档,不指定id
POST 索引库名/_doc
{
"属性名":属性值,
...
}
4.1.2.2 举例
POST person/_doc
{
"name":"翠花",
"age":20,
"sex":"女"
}
4.2 查询文档
4.2.1 查询单个
GET person/_doc/1
GET person/_doc/JHOaYoUBDyHDigT_2Vu8
4.2.2 查询全部
GET person/_search
4.3 修改文档
4.3.1 语法格式
# 修改一条文档数据
PUT 索引库名/_doc/指定id
{
"属性名":属性值,
...
}
4.3.2 举例
PUT person/_doc/1
{
"name":"如花",
"age":20,
"sex":"女"
}
再次查看
GET person/_doc/1
4.4 删除文档
4.4.1 语法格式
# 删除一条文档数据
DELETE 索引库名/_doc/指定id
4.4.2 举例
DELETE person/_doc/1
五、Kibana客户端提示#! 解决
5.1 问题
Kibana提示#! Elasticsearch built-in security features are not enabled. Without authentication, your cluster could be accessible to anyone. Seehttps://www.elastic.co/guide/en/elasticsearch/reference/7.15/security-minimal-setup.html to enable security.
5.2 解决方案
在es的安装路径下的config目录下elasticsearch.yml
文件去 配置禁用安全选项xpack.security.enabled
,之后重启Elasticsearch和kibana
network.host: 127.0.0.1
xpack.security.enabled: false
重启ES