一、环境准备
操作系统: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
返回结果
 
 
 

ES-实战的更多相关文章

  1. es实战之数据导出成csv文件

    从es将数据导出分两步: 查询大量数据 将数据生成文件并下载 本篇主要是将第二步,第一步在<es实战之查询大量数据>中已讲述. csv vs excel excel2003不能超过6553 ...

  2. 1W字|40 图|硬核 ES 实战

    前言 上篇我们讲到了 Elasticsearch 全文检索的原理<别只会搜日志了,求你懂点检索原理吧>,通过在本地搭建一套 ES 服务,以多个案例来分析了 ES 的原理以及基础使用.这次我 ...

  3. es实战之查询大量数据

    背景 项目中已提供海量日志数据的多维实时查询,客户提出新需求:将数据导出. 将数据导出分两步: 查询大量数据 将数据生成文件并下载 本文主要探讨第一步,在es中查询大量数据或者说查询大数据集. es支 ...

  4. Spring Boot & ES 实战,值得参考!

    作者:废物大师兄 cnblogs.com/cjsblog/p/9756978.html 1. 前言 1.1. 集成方式 Spring Boot中集成Elasticsearch有4种方式: REST C ...

  5. elasticsearch技术解析与实战ES

    elasticsearch技术解析与实战ES 下载地址: https://pan.baidu.com/s/1NpPX05C0xKx_w9gBYaMJ5w 扫码下面二维码关注公众号回复100008 获取 ...

  6. 白日梦的Elasticsearch实战笔记,ES账号免费借用、32个查询案例、15个聚合案例、7个查询优化技巧。

    目录 一.导读 二.福利:账号借用 三._search api 搜索api 3.1.什么是query string search? 3.2.什么是query dsl? 3.3.干货!32个查询案例! ...

  7. ES项目实战

    前置 ES: Java Spark/Flink Stack + Spring Boot + ES Scala/Java + Java/Scala + Java ==> 用API的方式来掌握ES的 ...

  8. elasticsearch7.6.2实战(2)-es可视化及分析平台-kibana

    1. 场景描述 elasticsearch部署完成后,es官方提供了可视化.分析及管理平台-kibana,部署下,有需要朋友参考下,不谢! 2. 解决方案 2.1 下载 (1)地址:https://w ...

  9. Elasticsearch数据库优化实战:让你的ES飞起来

    摘要:ES已经成为了全能型的数据产品,在很多领域越来越受欢迎,本文旨在从数据库领域分析ES的使用. 本文分享自华为云社区<Elasticsearch数据库加速实践>,原文作者:css_bl ...

  10. 【逆向实战】ES文件浏览器未授权访问漏洞(CVE-2019-6447)具体分析及利用

    /作者:Kali_MG1937 CSDN博客号:ALDYS4 QQ:3496925334 未经许可,禁止转载/ 漏洞简介 CVE-2019-6447是Android端上的一个知名软件:ES文件浏览器的 ...

随机推荐

  1. C++问题--fread文件读不完整问题解决

    今天突然遇到一个问题,用fwrite/fread读写文件,发现当fread读取文件时只能读一半, 即使用foef()查看是否读到文件结尾,也是显示文件已经读取到文件末尾,查看文件的返回值发现文件只读取 ...

  2. DP(第二版)

    第一版请见:直通 话不多说,直接上题 1.P1040 加分二叉树 直通 思路: 已知中序遍历,相当于一段区间了,所以我们枚举一个k,如果以k为根节点,能够将分数更新,那么这段区间的根节点就置为k,最后 ...

  3. apipost 调试微信公众号 小程序,秒生成文档工具

    1.将已经鉴权的公众号,小程序接口的 header头信息复制进来 2.设置文档展示字段

  4. 虚拟机安装WIN7教程

    1.去下载win7原装镜像,推荐去官方网站下载:https://msdn.itellyou.cn/ 也可以直接使用Win7系统和激活工具链接:https://pan.baidu.com/s/1SJSE ...

  5. elasticsearch sql插件配置(5.0及以上版本)

    github官方参考地址:https://github.com/NLPchina/elasticsearch-sql/ 采用 git + node 的方式,所以安装前需要先安装好node,node n ...

  6. Flutter路由跳转父级页面向子页面传参及子页面向父级页面传参

    Flutter中页面通过路由跳转传参主要分两种,一种是通过push()跳转时根据设定的参数进行传参,另一种是通过pop()返回时进行传参. 父级页面向子页面push()传参 假设从A页面跳到B页面可能 ...

  7. Flume-数据流监控 Ganglia

    Ganglia 由 gmond.gmetad 和 gweb 三部分组成. gmond(Ganglia Monitoring Daemon)是一种轻量级服务,安装在每台需要收集指标数据的节点主机上.使用 ...

  8. android设置gps自动开启

    1.第一种方法 private void toggleGPS() { Intent gpsIntent = new Intent(); gpsIntent.setClassName("com ...

  9. 011-通过网络协议解析网络请求-DNS-ARP-TCPIP

    一.概述 1.1.tcp/ip概述 TCP/IP不是一个协议,而是一个协议族的统称.里面包括IP协议.IMCP协议.TCP协议.跨越了多层模型的多层 TCP/IP协议族按照层次由上到下,层层包装.最上 ...

  10. c++ STL 最大值最小值

    #include <iostream>#include <algorithm>#include <deque> using namespace std; //二元谓 ...