ES-实战

 一、环境准备
操作系统:mac
依赖的软件:JDK1.8、Postman、NodeJs6.0以上、Maven、Idea
ES下载:Elastic官方网站: http://www.elastic.co 、版本:elasticsearch-7.1.0-darwin-x86_64.tar
集群模式:一主两从,集群安装参考:https://www.cnblogs.com/liuxiaoming123/p/8081883.html
ES可视化管理插件:GitHub上寻找:elasticsearch-head
 
二、实际操作
 
1. 启动集群
进入到各自的bin目录
sh ./elasticsearch
 
2. 启动管理插件
在这个插件目录下:npm run start
 
3. 实际操作
 API基本格式:http://ip:port/索引/类型/文档id
常用http动词:GET/PUT/POST/DELETE
 
 
目录:
一、索引创建
1. 非结构化创建
2. 结构化创建
二、插入
1. 指定文档ID插入
2. 自动产生文档ID插入
三、修改
1. 直接修改文档
2. 脚本修改文档
四、删除
1. 删除文档
2. 删除索引
五、查询
1. 简单查询
2. 条件查询
3. 聚合查询
 
正文:
一、索引创建
1. 非结构化创建
1.1 浏览器输入:localhost:9100
 
1.2 点索引tab页,并创建索引
 
输入索引名称:task,分片数:5,副本数: 1,点OK
弹出如下提示:表示创建成功,点确定
 
出现下图:
1.3 在预览中查看
 
1.4 点索引信息,查看结构化和非结构化索引信息
2. 结构化创建
2.1 点击 复合查询
2.2 加入:task/novel/_mappers
{ "novel": { "properties": { "title": { "type": "text" } } } }
    2.3 勾选易读
  2.4点击 验证JSON
  2.5点击 提交请求
2.6 点击概览,刷新页面
 
2.7 在postman中编写json字符串(采取put提交方式提交)
注意:从7.0版本及之后的版本写法和之前的版本有很大的区别
在Elasticsearch 7.0.0或更高版本中创建的索引可能只包含单个映射类型。在具有多种映射类型的5.x中创建的索引将继续像以前一样在Elasticsearch 6.x中运行。映射类型将在Elasticsearch 7.0.0中完全删除
 
2.8 刷新页面,看索引信息中的mapping
 
 
mappings不为空,为结构化创建索引
 
二、插入
 
1. 指定文档ID插入
postman中的请求:127.0.0.1:9200/people/_doc/1
请求内容:
{
"name":"小宋",
"country":"china",
"age":26,
"date":"1992-08-08"
}
控制台刷新
进行数据浏览,看插入的数据
 
2. 自动产生文档ID插入
postman输入(post请求):127.0.0.1:9200/people/_doc/
写入内容
{
"name":"小宋自动生产",
"country":"china",
"age":26,
"date":"1992-08-08"
}
 
刷新控制台
 
看数据预览
 
 
三、修改
1. 直接修改文档
postman输入(post):127.0.0.1:9200/people/_doc/1/_update
修改内容
{
"doc":{
"name":"小宋-天地玄黄"
}
}
点send,看一下
刷新一下数据浏览,id=1的 name 被修改了
 
 
2. 脚本修改文档
1)方式一:
postman中输入(post):127.0.0.1:9200/people/_doc/1/_update
修改内容
{
"script":{
"lang":"painless",
"inline":"ctx._source.age += 10"
}
}
send执行:
刷新控制台,看数据浏览
 
 
 
2)方式二
postman输入(post):127.0.0.1:9200/people/_doc/1/_update
修改内容:
{
"script":{
"lang":"painless",
"inline":"ctx._source.age = params.age",
"params":{
"age":100
}
}
}
send执行
控制台刷新,看数据浏览,age变成了100
 
 
四、删除
1. 删除文档
概览中,点people下的动作,展开列表,看删除,
 
点删除,弹出删除确认对话框,需要输入“删除”两个字,才能删除
 
2. 删除索引
postman输入(delete):127.0.0.1:9200/people/_doc/1
删除时,不需要输入内容
执行send
 
五、查询
1. 简单查询
postman输入(get):127.0.0.1:9200/people/_doc/1
不用输入内容:
执行send,看查询结果
2. 条件查询
match_all 是全部查询
query 是查询关键字
from 是从哪里查
size 是显示多少条数据
sort 是排序设置
1)方式1,查询全部
postman输入(post):127.0.0.1:9200/people/_search
查询条件:
{
"query":{
"match_all":{}
},
"from":1,
"size":3
}
查询全部,match_all 为 {}
 
 
 
 
 
2)方式2:按关键字查询
postman中输入(post):127.0.0.1:9200/people/_search
查询条件:
{
"query":{
"match":{
"name":"小宋"
}
},
"sort":[
{"_id":"desc"}
]
}
people中带小宋的,都查询出来,并且按id排倒叙
 
  
 
 
3. 聚合查询
聚合提供了用户进行分组和数理统计的能力,可以把聚合理解成SQL中的GROUP BY和分组函数
指标聚合/桶聚合
Metrics(度量/指标):简单的对过滤出来的数据集进行avg,max操作,是一个单一的数值
Bucket(桶):将过滤出来的数据集按条件分成多个小数据集,然后Metrics会分别作用在这些小数据集上
 
postman输入(post):127.0.0.1:9200/people/_search
查询条件:
{
"aggs":{
 
"group_by_date":{
"terms":{
"field":"date"
}
},
"group_by_age":{
"terms":{
"field":"age"
}
}
 
}
}
执行send
返回结果
 
 
 

posted @ 2019-08-18 01:15  源码在深山  阅读(785)  评论(0编辑  收藏  举报