一、环境准备
操作系统: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. Spring Boot 如何部署到 Linux 中的服务

    打包完成后的 Spring Boot 程序如何部署到 Linux 上的服务? 你可以参考官方的有关部署 Spring Boot 为 Linux 服务的文档. 文档链接如下: https://docs. ...

  2. [Qt Quick] No rule to make target 问题解决办法

    [问题描述] 修改项目中资源的qml文件名或删除无用资源文件后,重新构建项目时,会出现类似如下的问题提示: No rule to make target 'aaa', needed by 'bbb'. ...

  3. Liunx之nginx配置

    一.nginx安装 卸载yum安装的ngjnx yum remove nginx -y 编译安装nginx步骤 编译安装nginx的步骤 1.解决软件依赖 yum install gcc patch ...

  4. c++ 实现等待5s

    #include <stdio.h> /* puts, printf */ #include <time.h> /* time_t, struct tm, time, loca ...

  5. 八、linux文件系统上的特殊权限 SUID 、GUID、Sticky

    安全上下文 前提:进程有属主和属组,文件有属主和属组 任何一个可执行程序文件能不能启动为进程:取决发起者对程序文件是否拥有执行权限 启动为进程之后,其进程的属主为发起者:进程的属组为发起者所属的组 进 ...

  6. Leetcode题目287.寻找重复数(中等)

    题目描述: 给定一个包含 n + 1 个整数的数组 nums,其数字都在 1 到 n 之间(包括 1 和 n),可知至少存在一个重复的整数.假设只有一个重复的整数,找出这个重复的数. 示例 1: 输入 ...

  7. JAVA的main方法

    在Java中,main()方法是Java应用程序的入口方法,也就是说,程序在运行的时候,第一个执行的方法就是main()方法,这个方法和其他的方 法有很大的不同,比如方法的名字必须是main,方法必须 ...

  8. Mac os 安装 alipay-sdk-python 3.3.92错误 line 278,其实是另一个依赖包pycrypto安装有问题。

    日期2019.7.17解决的问题. 系统mac os 10.14.5 python 3.6 django 1.11 要安装alipay-sdk-python 3.3.92错误 line 278, in ...

  9. 如何修改layer-layui中的confirm

    需求: 改成 背景: 这个confirm是layui中的layer弹出框,要想修改这个弹出框的内容岂不是要去修改源码?当我在源码里扒拉半天梳理好了逻辑之后,突然意识到,其实我本可以不必这么麻烦的,直接 ...

  10. oracle传输表空间

    https://blog.csdn.net/ch7543658/article/details/39271135/ Oracle expdp/impdp常用性能优化方法 1.查看操作系统endiann ...