一、环境准备
操作系统:mac
依赖的软件:JDK1.8、Postman、NodeJs6.0以上、Maven、Idea
ES下载:Elastic官方网站: http://www.elastic.co 、版本:elasticsearch-7.1.0-darwin-x86_64.tar
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实战之数据导出成csv文件
从es将数据导出分两步: 查询大量数据 将数据生成文件并下载 本篇主要是将第二步,第一步在<es实战之查询大量数据>中已讲述. csv vs excel excel2003不能超过6553 ...
- 1W字|40 图|硬核 ES 实战
前言 上篇我们讲到了 Elasticsearch 全文检索的原理<别只会搜日志了,求你懂点检索原理吧>,通过在本地搭建一套 ES 服务,以多个案例来分析了 ES 的原理以及基础使用.这次我 ...
- es实战之查询大量数据
背景 项目中已提供海量日志数据的多维实时查询,客户提出新需求:将数据导出. 将数据导出分两步: 查询大量数据 将数据生成文件并下载 本文主要探讨第一步,在es中查询大量数据或者说查询大数据集. es支 ...
- Spring Boot & ES 实战,值得参考!
作者:废物大师兄 cnblogs.com/cjsblog/p/9756978.html 1. 前言 1.1. 集成方式 Spring Boot中集成Elasticsearch有4种方式: REST C ...
- elasticsearch技术解析与实战ES
elasticsearch技术解析与实战ES 下载地址: https://pan.baidu.com/s/1NpPX05C0xKx_w9gBYaMJ5w 扫码下面二维码关注公众号回复100008 获取 ...
- 白日梦的Elasticsearch实战笔记,ES账号免费借用、32个查询案例、15个聚合案例、7个查询优化技巧。
目录 一.导读 二.福利:账号借用 三._search api 搜索api 3.1.什么是query string search? 3.2.什么是query dsl? 3.3.干货!32个查询案例! ...
- ES项目实战
前置 ES: Java Spark/Flink Stack + Spring Boot + ES Scala/Java + Java/Scala + Java ==> 用API的方式来掌握ES的 ...
- elasticsearch7.6.2实战(2)-es可视化及分析平台-kibana
1. 场景描述 elasticsearch部署完成后,es官方提供了可视化.分析及管理平台-kibana,部署下,有需要朋友参考下,不谢! 2. 解决方案 2.1 下载 (1)地址:https://w ...
- Elasticsearch数据库优化实战:让你的ES飞起来
摘要:ES已经成为了全能型的数据产品,在很多领域越来越受欢迎,本文旨在从数据库领域分析ES的使用. 本文分享自华为云社区<Elasticsearch数据库加速实践>,原文作者:css_bl ...
- 【逆向实战】ES文件浏览器未授权访问漏洞(CVE-2019-6447)具体分析及利用
/作者:Kali_MG1937 CSDN博客号:ALDYS4 QQ:3496925334 未经许可,禁止转载/ 漏洞简介 CVE-2019-6447是Android端上的一个知名软件:ES文件浏览器的 ...
随机推荐
- idea快捷方式2
IntelliJ Idea 常用快捷键列表 Ctrl+Shift + Enter,语句完成“!”,否定完成,输入表达式时按 “!”键Ctrl+E,最近的文件Ctrl+Shift+E,最近更改的文件Sh ...
- Flask-CBV模式
Flask中的CBV模式 ''' flask中的CBV模式: (1)导入views模块: from flask import views (2)定义类,继承views.MethodView类: cla ...
- JavaScript中常见数据结构
数据结构 栈:一种遵从先进后出 (LIFO) 原则的有序集合:新添加的或待删除的元素都保存在栈的末尾,称作栈顶,另一端为栈底.在栈里,新元素都靠近栈顶,旧元素都接近栈底. 队列:与上相反,一种遵循先进 ...
- 无法访问com.alibaba.fastjson.parser.deserializer.PropertyProcessable
某项目加入了某依赖A,IDEA里编译报了如下错误: 无法访问com.alibaba.fastjson.parser.deserializer.PropertyProcessable 错误代码行为某个使 ...
- 如何获取linux内核的某个子系统的维护者邮箱?
答: 如获取pwm子系统的维护者邮箱: ./scripts/get_maintainer.pl drivers/pwm
- 利用socket实现聊天-Android端核心代码
实体类与服务端报错一致,包括包名 package loaderman.im.bean; /** * 一个聊天消息的JavaBean * * */ public class ChatMsgEntity ...
- 超详细MySQL安装及基本使用教程
一.下载MySQL 首先,去数据库的官网http://www.mysql.com下载MySQL. 点击进入后的首页如下: 然后点击downloads,community,选择MySQL Commun ...
- Eclipse添加Android library 错误的原因
这两天把项目从本地转移到GIT上,本来我的Workspace是在D盘,现在因为感觉D盘不够用,就把GIT到的项目放到E盘了 按照以往的用法,GIT下来以后再往属性里添加依赖库就OK了,但是这次怎么也无 ...
- 我的dbtreeview–treeview直接连接数据表_delphi教程
unit Unit1; interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs ...
- getchwd() 函数返回当前工作目录。
getchwd() 函数返回当前工作目录.