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: 数据增,删,改,批量操作

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/146540.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

开源与闭源:驾驭大模型未来的关键决断

在数字化的时代洪流中,开源与闭源的选择不断成为技术界的重要分水岭。随着特斯拉CEO埃隆马斯克的言论及其决策,公开支持开源,并糅合商业理念与技术革新,使得这场辩论再次成为公众关注的焦点。那么,在这场关乎技术发展脉…

Adversarial Attacks on Neural Networks for Graph Data

Adversarial Attacks on Neural Networks for Graph Data----《针对图数据的神经网络的对抗攻击》 论文提出了两个问题: 1、属性图的深度学习模型容易受攻击吗? 2、他们的结果可靠吗? 回答这两个问题需要考虑到GNN的特性: ①关…

物联网赋能:WIFI HaLow在无线连接中的优势

在探讨无线网络连接时,我们不难发现,WIFI已经成为我们日常生活中不可或缺的一部分,承载了半数以上的互联网流量,并在家庭、学校、娱乐场所等各种场合广泛应用。然而,尽管WIFI4、WIFI5和WIFI6等协议无处不在&#xff0c…

Go ZIP压缩文件读写操作

创建zip文件 golang提供了archive/zip包来处理zip压缩文件,下面通过一个简单的示例来展示golang如何创建zip压缩文件: func createZip(filename string) {// 缓存压缩文件内容buf : new(bytes.Buffer)// 创建zipwriter : zip.NewWriter(buf)defer writ…

【网络安全】伪装IP网络攻击的识别方法

随着互联网的普及和数字化进程的加速,网络攻击事件屡见不鲜。其中,伪装IP的网络攻击是一种较为常见的攻击方式。为了保护网络安全,我们需要了解如何识别和防范这种攻击。 一、伪装IP网络攻击的概念 伪装IP网络攻击是指攻击者通过篡改、伪造I…

C/C++ 运用VMI接口查询系统信息

Windows Management Instrumentation(WMI)是一种用于管理和监视Windows操作系统的框架。它为开发人员、系统管理员和自动化工具提供了一种标准的接口,通过这个接口,可以获取有关计算机系统硬件、操作系统和应用程序的信息&#xf…

SDL音视频渲染

01-SDL简介 官网:https://www.libsdl.org/ 文档:http://wiki.libsdl.org/Introduction SDL(Simple DirectMedia Layer)是一套开放源代码的跨平台多媒体开发库,使用C语言写成。SDL提供了数种控制图像、声音、输出入的函…

后端老项目迁移方法

老项目迁移方法 需求: 因某个模块MySQL表结构、表关系 错乱复杂,而且其他模块的代码也在操作这个模块的数据库 耦合严重 导致Web工程代码紊乱、不易理解、性能低下, 故在 系统由A JavaWeb工程迁移至B工程 时,重构MySQL表结构、表…

Python 爬虫入门

文章目录 Python 爬虫入门requests 库beautifulsoup4库函数findall(),find()函数get() 爬虫实例 1:抓小说爬虫实例 2:抓豆瓣 top 250 的电影信息后记 Python 爬虫入门 Python 的爬虫功能使得程序员可以快速抓取并分析网页中的信息&#xff0…

机器学习笔记 - 使用 PyTorch 的多任务学习和 HydraNet

一、HydraNet简述 特斯拉使用了一个模型可以解决他们正在处理的每一项可能的任务。 例如:物体检测、道路曲线估计、深度估计、3D重建、视频分析、物体追踪、ETC等等。 以下是在 NVIDIA GPU 上以 3 种不同配置运行的 2 个计算机视觉模型的基准测试。 在第一个配置中,我…

「Verilog学习笔记」使用3-8译码器①实现逻辑函数

专栏前言 本专栏的内容主要是记录本人学习Verilog过程中的一些知识点,刷题网站用的是牛客网 timescale 1ns/1nsmodule decoder_38(input E1_n ,input E2_n ,input E3 ,input A0 ,input A1…

【VSCode】Visual Studio Code 下载与安装教程

前言 Visual Studio Code(简称 VS Code)是一个轻量级的代码编辑器,适用于多种编程语言和开发环境。本文将介绍如何下载和安装 Visual Studio Code。 下载安装包 首先,我们需要从官方网站下载 Visual Studio Code 的安装包。请访…

北邮22级信通院数电:Verilog-FPGA(9)第九周实验(4)实现寄存器74LS374

北邮22信通一枚~ 跟随课程进度更新北邮信通院数字系统设计的笔记、代码和文章 持续关注作者 迎接数电实验学习~ 获取更多文章,请访问专栏: 北邮22级信通院数电实验_青山如墨雨如画的博客-CSDN博客 目录 一.代码部分 1.1 reg_74LS374.v 1.2 reg_LS3…

二十九、W5100S/W5500+RP2040树莓派Pico<Web socket Server>

文章目录 1 前言2 简介2 .1 什么是WebSocket协议?2.2 WebSocket协议工作原理2.3 WebSocket协议优点2.4 WebSocket应用场景 3 WIZnet以太网芯片4 WebSocket示例概述以及使用4.1 流程图4.2 准备工作核心4.3 连接方式4.4 主要代码概述4.5 结果演示 5 注意事项6 相关链接…

java中@Validated注解的作用?

Validated是Spring框架中的一个注解,用于在方法参数、方法返回值或类级别上开启验证(Validation)功能。它的作用是指示Spring对标记的对象进行验证,并根据定义的验证规则执行验证操作。 具体而言,Validated注解与JSR-…

抖音直播招聘报白是一种新颖、高效的招聘方式增加曝光度和吸引力

总之,抖音招聘是一种新颖、高效的招聘方式,它可以为公司带来更大的曝光度和吸引力,帮助公司吸引更多优秀的人才。通过抖音直播招聘报白,企业或者人力资源公司可以利用抖音的短视频流量红利,触达到每天超过8亿的活跃用户…

CAD Exchanger SDK 3.23.0 的亮点

代号“CAD Exchanger MTK”的新兴产品首次亮相,支持新版本的流行格式,重新设计的 BIM 模型结构以及 3.23.0 中的 SDK 文档修订 阅读最新版本编写的 Autodesk Inventor 和 NX 文件,享受更严格的 BIM 模型结构,轻松浏览 SDK 文档&am…

spire.pdf盖章(无水印免费无限制)

下载老版的spire.pdf.jar,就会在一页有水印,添加一页pdf,然后删掉最后一页就可以了; jar资源地址:spire.pdf-3.7.4.jar import java.awt.geom.Rectangle2D; import java.io.File; import java.io.IOException;import …

基于单片机温湿度PM2.5报警系统

**单片机设计介绍, 基于单片机温湿度PM2.5报警设置系统 文章目录 一 概要二、功能设计设计思路 三、 软件设计原理图 五、 程序六、 文章目录 一 概要 单片机温湿度PM2.5报警设置系统是一种智能化的环境检测与报警系统。它主要由单片机、传感器、液晶显示屏、蜂鸣器…

Django部署时静态文件配置的坑

Django部署时静态文件配置配置的坑 近期有个需求是用django进行开发部署,结果发现静态文件配置的坑是真的多,另外网上很多的内容也讲不清楚原理,就是这样这样,又那样那样,进了不少坑,这里记录一下关于css,…