ElasticSearch综合练习题,ES为8版本,使用Kibana运行语句
文章目录
- 前言
- 一、ES查询集群情况
- 二、ES索引习题
- 查询所有索引
- 查询单个索引
- 三、ES增删改查数据
- 单条处理
- 批量处理
- 四、雇员查询练习题
- 五、学生查询练习题
- 六、商品信息联系题
- 其他:一问一答
- 参考文档
前言
- ES8版本没有type概念,所以语法可能会与其他版本有差异
一、ES查询集群情况
- 查看集群的健康状况
GET _cat/health
- 查询ES的所有配置
GET _all
二、ES索引习题
- es的索引mapper结构不支持修改已经存在的字段类型,但是能添加新的字段
查询所有索引
- 查询ES中所有的index
GET _cat/indices
- 查询所有index列表,格式化查询
GET _mapping?pretty=true
- 查看所有索引文档总数
GET _all/_count
查询单个索引
- 增加一个aura_index的index库
PUT /aura_index
- 查询aura_index索引的所有信息
GET /aura_index
- 删除一个aura_index的index库
DELETE /aura_index
- 查看aura_index索引文档总数
GET /aura_index/_count
- 修改分片副本数量
PUT /aura_index/_settings
{"index":{"number_of_replicas":4}
}
- 新增Mapping映射
POST /aura_index/_mapping
{"properties":{"phone":{"type":"keyword"}}
}
- 创建website的index,要求为该索引有3个分片,2份副本
PUT /website
{"settings":{"index":{"number_of_shards":3,"number_of_replicas":2}}
}
{"website": {"aliases": {},"mappings": {},"settings": {"index": {"creation_date": "1561987828517","number_of_shards": "3","number_of_replicas": "2","uuid": "3aiQiakoQeGcnrfdBVqBjA","version": {"created": "6020299"},"provided_name": "website"}}}
}
三、ES增删改查数据
- 无论这个id是否存在,只要对这个id操作增删改,都会使这个id的version加1。
- 如果该id已经存在,增加一条数据,旧数据完全被新数据完全覆盖。(不会报错)
- 更新一条数据,如果id或者字段不存在(报错)
单条处理
- 增加一条数据
PUT /megacorp/_doc/1
{
"first_name" : "John",
"last_name" : "Smith",
"age" : 25,
"about" : "I love to go rock climbing",
"interests": [ "sports", "music" ]
}
- 查询一条数据
GET /megacorp/_doc/1
- 修改first字段
POST /megacorp/_update/1
{"doc":{"first_name" : "John001"}
}
- 删除数据
DELETE /megacorp/_doc/1
批量处理
_bulk命令:
第一个json表示操作类型和操作的id
第二个json是操作所需要的数据。(不允许换行,不然报错)
反复执行,形成一个命令多个操作
- 批量新增数据
POST megacorp/_bulk
{"index":{"_id":4}}
{"id":4,"name":"admin","counter":"10","tags":["red","black"]}
{"index":{"_id":5}}
{"id":5,"name":"zcy"}
{"index":{"_id":6}}
{"id":6,"name":"admin006","counter":"10","tags":["red","black"]}
- 批量修改数据
修改的字段前必须带上 ctx._source.这个格式
POST megacorp/_bulk
{"update":{"_id":4}}
{"script":{"source":"ctx._source.name='admin_update'"}}
{"update":{"_id":5}}
{"script":{"source":"ctx._source.name='zcy_update'"}}
{"update":{"_id":6}}
{"script":{"source":"ctx._source.name='admin006_update'"}}
- 批量删除数据
POST megacorp/_bulk
{"delete":{"_id":4}}
{"delete":{"_id":5}}
{"delete":{"_id":6}}
四、雇员查询练习题
- 初始化数据
POST megacorp/_bulk
{"index":{"_id":1}}
{"first_name" : "John","last_name" : "Smith","age" : 25,"about" : "I love to go rock climbing","interests": [ "sports", "music" ]}
{"index":{"_id":2}}
{"first_name" : "Jane","last_name" : "Smith","age" : 32,"about" : "I like to collect rock albums","interests": [ "music" ]}
{"index":{"_id":3}}
{"first_name" : "Douglas","last_name" : "Fir","age" : 35,"about": "I like to build cabinets","interests": [ "forestry" ]}
- 查看雇员id为1的信息
GET /megacorp/_doc/1
- 搜索所有员工信息
GET /megacorp/_search
- 搜索last_name字段值为Smith的员工信息
GET /megacorp/_search
{"query": {"match": {"last_name" : "Smith"}}
}
GET /megacorp/_search
{"query": {"multi_match": {"query": "Smith","fields": ["last_name"]}}
}
- 搜索名字为 Smith 的雇员,但年龄大于 30 岁的
GET /megacorp/_search
{"query": {"bool": {"must": [{"match": { "last_name" : "Smith"}},{"range": { "age": { "gt": 30}}}]}}
}
- 搜索下所有喜欢攀岩(rock climbing)的雇员。
GET /megacorp/_search{"query": {"multi_match": {"query": "climbing","fields": ["about"]}}
}
- 仅匹配同时包含 “rock” 和 “climbing”,并且二者以短语“rock climbing” 的形式紧挨着的雇员记录
GET /megacorp/_search
{"query": {"match_phrase":{"about":"rock climbing"}}
}
- 仅匹配同时包含 “rock” 和 “climbing”,并且二者以短语“rock climbing” 的形式紧挨着的雇员记录,同时需要高亮显示搜索的内容。
GET /megacorp/_search
{"query": {"match_phrase":{"about":"rock climbing"}},"highlight": {"fields" : {"about" : {}}}
}
- 求出所有雇员年龄相加的值
GET /megacorp/_search
{"size": 0,"aggs": {"total_amount": {"sum": {"field": "age"}}}
}
- 求出年龄大于30的雇员,年龄相加的值
GET /megacorp/_search
{"query": {"range": {"age": {"gt": 30}}}, "size": 0,"aggs": {"total_amount": {"sum": {"field": "age"}}}
}
- 求所有雇员的平均年龄
GET /megacorp/_search
{"size": 0,"aggs": {"avg_age": {"avg": {"field": "age"}}}
}
五、学生查询练习题
- 初始化数据
PUT /_bulk
{"create":{"_index":"stu","_id":"1"}}
{"id": 1, "studentNo": "TH-CHEM-2016-C001", "name": "Jonh Smith", "major":"Chemistry", "gpa": 4.8, "yearOfBorn": 2000, "classOf": 2016, "interest": "soccer, basketball, badminton, chess"}
{"create":{"_index":"stu","_id":"2"}}
{"id": 2, "studentNo": "TH-PHY-2018-C001", "name": "Isaac Newton", "major":"Physics", "gpa": 3.6, "yearOfBorn": 2001, "classOf": 2018, "interest": "novel, soccer, cooking"}
{"create":{"_index":"stu","_id":"3"}}
{"id": 3, "studentNo": "BU-POLI-2016-C001", "name": "John Kennedy", "major":"Politics", "gpa": 4.2, "yearOfBorn": 2000, "classOf": 2016, "interest": "talking, dating, boxing, shooting, chess"}
{"create":{"_index":"stu","_id":"4"}}
{"id": 4, "studentNo": "BU-POLI-2015-C001", "name": "John Kerry", "major":"Politics", "gpa": 4.1, "yearOfBorn": 1999, "classOf": 2015, "interest": "money, basketball"}
{"create":{"_index":"stu","_id":"5"}}
{"id": 5, "studentNo": "BU-ARTS-2016-C002", "name": "Da Vinci", "major":"Arts", "gpa": 4.8, "yearOfBorn": 1995, "classOf": 2016, "interest": "drawing, music, wine"}
- 同时查询id为1,3,5
GET /stu/_search
{"query":{"terms":{"id":["1","3","5"]}}
}
- 名字不叫John
GET /stu/_search
{"query":{"bool":{"must_not":{"match":{"name":"John"}}}}
}
- 在2016年以前入学的文档
GET /stu/_search
{"query":{"range":{"classOf":{"lt":"2016"}}}
}
- 请把id为4文档添加一个兴趣(字段为“interest”) “poker”(PS:根据查询结果修改字段属性的值)
POST /stu/_update/4
{"doc":{"interest" : "money,basketball,poker"}
}
六、商品信息联系题
- 初始化数据
PUT /mystore
{"settings": {"number_of_shards": 1},"mappings": {"properties": {"price": {"type": "integer"},"productID": {"type": "text"}}}
}
POST mystore/_bulk
{"index":{"_id":1}}
{"price":10,"productID":"XHDK-A-1293-#fJ3"}
{"index":{"_id":2}}
{"price":20,"productID":"XHDK-A-1293-#f20"}
{"index":{"_id":3}}
{"price":30,"productID":"JODL-X-1937-#pV7"}
{"index":{"_id":4}}
{"price":30,"productID":"QQPX-R-3956-#aD8"}
{"index":{"_id":5}}
{"price":50,"productID":"KDKE-B-9947-#kL5"}
{"index":{"_id":6}}
{"price":30,"productID":"KDKE-B-9947-#kL5"}
{"index":{"_id":7}}
{"price":70,"productID":"JODL-X-1937-#pV7"}
{"index":{"_id":8}}
{"price":40,"productID":"JODL-X-1937-#pV7"}
- 查找价格为20的商品信息,使用 constant_score 查询以非评分模式来执行 term 查询并以一作为统一评分
GET mystore/_search
{"query": {"constant_score": {"filter": {"term": { "price": 20 }}}}
}
- 查询具有"XHDK-A-1293-#fJ3"特定商品id的信息
GET mystore/_search
{"query":{"match_phrase":{"productID" : "XHDK-A-1293-#fJ3"}}
}
- 查询价格在20-40之间的商品信息
GET mystore/_search
{"query": {"range": {"price": {"gte": 20,"lte": 40}}}
}
- 查找商品列表中价格为20或30的商品信息
GET mystore/_search
{"query":{"terms":{"price":[20,30]}}
}
- 查询商品价格为30或者"productID"为"XHDK-A-1293-#fJ3"的商品信息,但是商品的"productID"不能为"QQPX-R-3956-#aD8"
GET mystore/_search
{"query": {"bool": {"should": [{"match": {"price": "30"}},{"match_phrase": {"productID": "XHDK-A-1293-#fJ3"}}],"must_not": [{"match_phrase": {"productID": "QQPX-R-3956-#aD8"}}]}}
}
- 查询productID 为"KDKE-B-9947-#kL5"的商品信息或者 productID为"JODL-X-1937-#pV7" 并且同时 price为 30的商品信息
GET mystore/_search
{"query":{"bool":{"must":[{"match":{"price":30}},{"bool": {"should":[{"match_phrase":{"productID":"KDKE-B-9947-#kL5"}},{"match_phrase":{"productID":"JODL-X-1937-#pV7"}}]}}]}}
}
其他:一问一答
- 索引结构确定了,能插入和结构不一致的数据么?
能,会自动扩大索引拥有的字段 - 索引结构确定了,同一字段能插入不同类型的数据么?
如果某字段是数字类型,不能插入字符串类型的数据,es会进行强转,强转失败则报错。但是能存入纯数字字符串,插入的数据还会以字符串的方式存储(长度有一定限制)。 - 数字类型的字段进行字符串搜索匹配么?
不能,搜索会报错
参考文档
- ElasticSearch综合练习题
- ElasticSearch从入门到精通,史上最全(持续更新,未完待续,每天一点点)
- ES: 数据增,删,改,批量操作
相关文章:

ElasticSearch综合练习题,ES为8版本,使用Kibana运行语句
文章目录 前言一、ES查询集群情况二、ES索引习题查询所有索引查询单个索引 三、ES增删改查数据单条处理批量处理 四、雇员查询练习题五、学生查询练习题六、商品信息联系题其他:一问一答参考文档 前言 ES8版本没有type概念,所以语法可能会与其他版本有差…...

Java方法中不使用的对象应该手动赋值为NULL吗?
在java方法中,不使用的对象是否应该手动赋值为null?我们先来通过一个示例看一下。 垃圾回收示例一 public class GuoGuoTest {public static void main(String[] args) {byte[] placeholder new byte[64 * 1024 * 1024];System.gc();} } 上面代码向内…...

Mysql主从搭建
Mysql主从搭建 1.Mysql下载1.1 查看操作系统2.2 下载mysql安装包 2.Mysql安装2.1 解压2.2 目录重命名2.3 创建data,存储文件2.4 创建用户组2.5 授权用户2.6 配置环境变量2.7 编辑my.cnf2.8 创建相关目录和文件2.9 初始化数据库2.10 复制mysql.server到/etc/init.d/下…...

WPF程序给按钮增加不同状态的图片
首先我们在资源里添加几个图片,Up,Over和Down状态。 然后我们创建一个Style。默认我们的背景设置成Up 然后在Triggers里添加代码,当Property:IsMouseOver为True的时候更换成Over;当Property:IsPressed为Tr…...

Java编程陷阱(三)
陷阱11:不要使用StringBuffer类来拼接字符串 StringBuffer是Java中的一个类,它可以表示一个可变的字符串,也就是可以对字符串进行修改和追加的操作,比如使用append或insert方法来拼接字符串。有时候,我们需要使用StringBuffer类来拼接字符串,比如在循环中动态地构建一个字…...

数据仓库相关
在阿里巴巴的数据体系中,我们建议将数据仓库分为三层,自下而上为:数据引入层(ODS,Operation Data Store)、数据公共层(CDM,Common Data Model)和数据应用层(…...

SpringBoot学习笔记-创建个人中心页面(下)
笔记内容转载自 AcWing 的 SpringBoot 框架课讲义,课程链接:AcWing SpringBoot 框架课。 CONTENTS 1. 实现个人中心页面2. POJO时区修改3. 集成代码编辑器 本节实现个人中心的前端页面,用户能够查看自己的 Bot 信息,并能创建、修改…...

电子秤方案:做一个宠物勺方案设计
养宠物是一件费心劳力的事情,但同时也是能够给你带来快乐和幸福感的事情。就是有时候会怕宠物毫无征兆地生病令人措手不及,所以电子秤方案设计鼎盛合科技分享一个小方案,能够及时了解到宠物的身体状况问题。 蓝牙宠物勺是一种具有记录和称重…...

Debezium-Embedded 实时监控MySQL数据变更
1.Debezium-Embedded 简介 Debezium连接器的操作通常是将它们部署到Kafka Connect服务,并配置一个或多个连接器来监控上游数据库,并为它们在上游数据库中看到的所有更改生成数据更改事件。这些数据更改事件被写入Kafka,在那里它们可以被许多不…...

计算机是如何工作的(简单介绍)
目录 一、冯诺依曼体系 二、CPU基本流程工作 逻辑⻔ 电⼦开关——机械继电器(Mechanical Relay) ⻔电路(Gate Circuit) 算术逻辑单元 ALU(Arithmetic & Logic Unit) 算术单元(ArithmeticUnit) 逻辑单元(Logic Unit) ALU 符号 寄存器(Regis…...

JSP基本表单和Request对象使用例子
表单的jsp; <%page contentType"text/html;charsetgbk" pageEncoding"UTF-8"%> <!DOCTYPE html> <html><head><meta http-equiv"Content-Type" content"text/html; charsetUTF-8"><titl…...

【Redux】Redux 基本使用
1. Redux 快速上手 Redux 是 React 最常用的集中状态管理工具,类似于Vue中的Pinia(Vuex),可以独立于框架运行。 <button id"decrement">-</button> <span id"count">0</span> <…...

多线程Thread(初阶一:认识线程)
目录 一、引用线程的原因 二、线程的概念 三、进程和线程的区别 四、多线程编程 一、引用线程的原因 多任务操作系统,希望系统能同时运行多个任务。所以会涉及到进程,需要对进程进行管理、调度等。 而单任务操作系统,就完全不涉及到进程…...

系列五、GC垃圾回收【四大垃圾算法-复制算法】
一、堆的内存组成 二、复制算法 2.1、发生位置 复制算法主要发生在新生代,发生在新生代的垃圾回收也被叫做Minor GC。 2.2、 Minor GC的过程 复制>清空》交换 1、eden、from区中的对象复制到to区,年龄1 首先,当eden区满的时候会触发第一…...

LeetCode(24)文本左右对齐【数组/字符串】【困难】
目录 1.题目2.答案3.提交结果截图 链接: 文本左右对齐 1.题目 给定一个单词数组 words 和一个长度 maxWidth ,重新排版单词,使其成为每行恰好有 maxWidth 个字符,且左右两端对齐的文本。 你应该使用 “贪心算法” 来放置给定的单…...

Spring-Spring之事务底层源码解析
EnableTransactionManagement工作原理 开启Spring事务本质上就是增加了一个Advisor,但我们使用EnableTransactionManagement注解来开启Spring事务是,该注解代理的功能就是向Spring容器中添加了两个Bean: AutoProxyRegistrarProxyTransactio…...

后端面经学习自测(三)
文章目录 1、ArrayList和Linkedlist区别?2、ArrayList扩容机制?3、ArrayList和Linkedlist分别能做什么场景?4、事务特性?MySQL事务Redis事务Spring事务5、在Spring中事务失效的场景?6、Java泛型?7、泛型擦除…...

力扣labuladong——一刷day40
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言一、力扣341. 扁平化嵌套列表迭代器 前言 N叉树的结构,构造迭代器 一、力扣341. 扁平化嵌套列表迭代器 /*** // This is the interface that allo…...

在VS Code中使用VIM
文章目录 安装和基本使用设置 安装和基本使用 VIM是VS Code的强大对手,其简化版本VI是Linux内置的文本编辑器,堪称VS Code问世之前最流行的编辑器,也是VS Code问世之后,我仍在使用的编辑器。 对VIM无法割舍的原因有二࿰…...

注解【元数据,自定义注解等概念详解】(超简单的好吧)
注解的理解与使用 注解的释义元数据的含义基础阶段常见的注解注解的作用(包括但不限于)教你读懂注解内部代码内容五种元注解尝试解读简单注解我当时的疑惑点 自定义注解自定义注解举例 注解的原理总结 注解的释义 我们都知道注释是拿来给程序员看的&…...

vue-pdf在vue框架中的使用
在components目录下新建PdfViewer/index.vue vue-pdf版本为4.3.0 <template><div :id"containerId" v-if"hasProps" class"container"><div class"right-btn"><div class"pageNum"><input v-m…...

Wordpress页面生成器:Elementor 插件制作网站页面教程(图文完整)
本文来教大家怎么使用Wordpress Elementor页面编辑器插件来自由创建我们的网页内容。很多同学在面对建站的时候,一开始都是热血沸腾信心满满的,等到实际上手的时候就会发现有很多问题都是无法解决的,希望本篇Elementor插件使用指南能够帮助到你。 Wordpress Elementor页面编…...

完全随机设计的方差分析
一、说明 实验设计在科学研究中发挥着至关重要的作用,使研究人员能够从数据中得出有意义的结论。一种常见的实验设计是完全随机设计(CRD),其特征是将实验单元随机分配到治疗组。CRD 的方差分析 (ANOVA) 是一种统计技术,…...

035、目标检测-物体和数据集
之——物体检测和数据集 目录 之——物体检测和数据集 杂谈 正文 1.目标检测 2.目标检测数据集 3.目标检测和边界框 4.目标检测数据集示例 杂谈 目标检测是计算机视觉中应用最为广泛的,之前所研究的图片分类等都需要基于目标检测完成。 在图像分类任务中&am…...

【开源】基于Vue.js的社区买菜系统的设计和实现
项目编号: S 011 ,文末获取源码。 \color{red}{项目编号:S011,文末获取源码。} 项目编号:S011,文末获取源码。 目录 一、摘要1.1 项目介绍1.2 项目录屏 二、系统设计2.1 功能模块设计2.1.1 数据中心模块2.1…...

【双指针】复写0
复写0 1089. 复写零 - 力扣(LeetCode) 给你一个长度固定的整数数组 arr ,请你将该数组中出现的每个零都复写一遍,并将其余的元素向右平移。 注意:请不要在超过该数组长度的位置写入元素。请对输入的数组 就地 进行上…...

记录一些涉及到界的题
文章目录 coppersmith的一些相关知识题1 [N1CTF 2023] e2Wrmup题2 [ACTF 2023] midRSA题3 [qsnctf 2023]浅记一下 coppersmith的一些相关知识 上界 X c e i l ( 1 2 ∗ N β 2 d − ϵ ) X ceil(\frac{1}{2} * N^{\frac{\beta^2}{d} - \epsilon}) Xceil(21∗Ndβ2−ϵ) …...

Linux秋招面试题
自己在秋招过程中遇到的Linux相关的面试题 linux查找含有“xxxx”的文件名 将/path/to/search替换为要搜索的目录路径,xxxx表示要匹配的文件名模式,其中xxxx是你要查找的字符串。这个命令将会在指定路径下递归地查找所有文件名中包含给定字符串的文件 …...

OPPO发布AndesGPT大模型;Emu Video和Emu Edit的新突破
🦉 AI新闻 🚀 OPPO发布全新ColorOS 14及自主训练的AndesGPT大模型 摘要:OPPO在2023 OPPO开发者大会上发布了全新的ColorOS 14,并正式推出了自主训练的安第斯大模型(AndesGPT)。AndesGPT拥有对话增强、个人…...

2311rust,到46版本更新
1.43.0稳定版 项(item)片段 在宏中,可用项片段把项插值到特征,实现和extern块的块体中.如: macro_rules! mac_trait {($i:item) > {trait T { $i }} } mac_trait! {fn foo() {} }这生成: trait T {fn foo() {} }围绕原语的推导类型 改进了围绕原语,引用和二进制操作的推…...