日常工作之 Elasticsearch 常用查询语句汇总
日常工作之 Elasticsearch 常用查询语句汇总
- 查询现有索引
- 创建索引
- 查询索引结构
- 插入数据
- 查询索引数据
- 查看索引磁盘占用信息
- 删除索引
- 查看分词器分词结果
- 指定查询数量
- 指定条件查询
- 数据迁移
- 统计索引数据量
- 更新数据
在使用 es 的过程中,总是会用到 es 的查询语句,考虑到一些 es 使用过程中语句没那么频繁,就会导致总是用起来的时候会忘记。那么为了方便用的时候可以快速查询到想用的内容,这里主要对 es 日常用到的查询语句 做一个总结展示,记录查询语句方便后续用到时查询。
查询现有索引
为了可以快速的找到想要查询的索引,但是记不得索引的全称,这个时候就可以通过以下命令来查询当前连接的 es 的所有索引
GET /_cat/indices?v
查询结果如图,这时我们就可以看到我们当前 es 下的所有的索引名称,在 index 列,其中 crm_* 开头的就是业务相关的 es 索引表的名称
创建索引
查询索引之前,首先就是需要创建一个索引,这里我们创建一个索引名称为 test 的索引。简单的创建索引语句如下,当然你也可以在创建索引时指定分片等
PUT /test
{"mappings": {"test":{"properties": {"content":{"type": "text", "analyzer": "hanlp"}}}}
}
所以创建成功之后你可以看到右侧的创建成功的信息
查询索引结构
当索引创建成功之后,那么你可能想要看一看索引中的字段信息。或者是当你需要用到某个索引,但是由于时间久忘记具体索引字段时可以使用如下语句查询索引结构,索引字段
GET /test/_mapping
这里我们看到的索引结构以及字段名称如图所示
插入数据
索引创建成功之后,就可以对指定的索引进行操作。首先就可以插入数据,通常插入数据的命令,可以通过put 命令为指定索引插入数据,比如
PUT test/test/1
{"content":"初级会计资格证"
}
执行索引插入数据操作成功之后可以看到右侧返回的索引创建成功信息,其中 result 返回 created 表示索引数据创建成功,如果是更新索引的话,这里 result 会返回 updated ,后面会讲到
查询索引数据
那么数据插入成功之后,我们就想确认一下我们的数据有没有插入成功,就可以通过以下命令查询索引数据,暂时没有指定具体的查询条件
GET test/_search
返回的结果如下,这时可以看到我们插入的数据已经成功展示了
查看索引磁盘占用信息
当使用了一段时间的 es 数据索引之后,我们可能会担心 es 索引磁盘的占用情况,同时也可以通过监控 es 磁盘的剩余空间来保证 es 数据可以没有问题的插入。这个时候就可以通过命令查询指定索引的磁盘占用信息
GET /_cat/indices/test?v
通过命令我们可以看到我们当前索引已经占用的磁盘空间信息
删除索引
当你在创建索引时遇到索引创建错误的情况,或者是之前讲过的你需要更改索引字段属性的时候,你可能需要通过创建临时索引的方式,然后迁移数据到新的索引中去,再删除旧的索引,那么这时候就会用到删除索引。对于删除索引操作,大家需要注意,删除的索引数据不能恢复,谨慎操作
DELETE test
查看分词器分词结果
另外还有就是为了提高 es 对于文本类型字段的搜索效率,这个时候就可能会对文本型字段添加分词器。当时当你考虑分词器的时候,你可能并不知道选择哪种分词器分词的效果更好。因此对于新的分词器,不了解其分词后的具体效果,可以通过命令执行分词器查看其分词结果
POST /_analyze
{"analyzer": "hanlp", "text": "查看哦,同时我们也会给您分配专属的学习规划师带"
}
比如说当前选择的hanlp 分词器的分词效果如图
这里需要注意的是,hanlp 分词器不是 es 的默认分词器,因此需要你自己下载安装hanlp 的分词器插件,在安装 hanlp 分词器插件时需要选择 hanlp 的分词器版本与当前你的 es 数据库版本一致才可以。
指定查询数量
在使用 es 查询数据时,es 默认每次查询指定条件下的 10 条数据,这个时候如果你想要查询更多数据的话,你就需要指定每页查询的数据量,通过 size 属性来设置,正如命令行
GET crm_meiqia_conversation/_search
{"size":200
}
指定条件查询
同样的,es 的查询也支持多种复杂条件的数据查询,比如如下的查询命令,执行条件查询分为多种条件,下面来指定一个基本的查询
GET crm_meiqia_conversation/_search
{"query": {"bool" : {"must" : [{"bool" : {"filter" : [{"range" : {"convStartDate" : {"from" : 1719849600000,"to" : null,"include_lower" : true,"include_upper" : true,"boost" : 1.0}}},{"range" : {"convEndDate" : {"from" : null,"to" : 1719935999000,"include_lower" : true,"include_upper" : true,"boost" : 1.0}}},{"term" : {"clientInfo.uid" : {"value" : "34546407","boost" : 1.0}}},{"term" : {"agentId" : {"value" : "10002351","boost" : 1.0}}},{"match_phrase_prefix" : {"convContent.content" : {"query" : "请您稍等","slop" : 0,"max_expansions" : 50,"boost" : 1.0}}}],"adjust_pure_negative" : true,"boost" : 1.0}}],"adjust_pure_negative" : true,"boost" : 1.0}}
}
查询后的返回结果如图所示,此时查询到的数据就是符合条件的数据
数据迁移
当需要更改索引结构时,需要先把原有索引的数据迁移到相同临时索引中,待更改索引结构之后再迁移回来,此时就是数据迁移,迁移数据用到
POST _reindex
{ "source": { "index": "crm_meiqia_conversation","size":500}, "dest": { "index": "crm_meiqia_conversation_tmp" }
}
或者也可以选择异步迁移数据的方式,比如如下命令
POST _reindex?wait_for_completion=false
{ "source": { "index": "crm_meiqia_conversation","size":500}, "dest": { "index": "crm_meiqia_conversation_tmp" }
}
异步迁移数据,数据迁移结果通过命令查看
GET /_tasks/cbwVMU6UTACFPxKW0zkOcw:456723575
统计索引数据量
当然,也有的场景需要统计索引的全部数据,那么想要统计索引的全部数据量,可以通过如下命令
GET crm_meiqia_conversation/_count
比如这里统计 索引 crm_meiqia_conversation 的 数据量,统计结果如图所示
更新数据
还有一种情况就是,在新增索引数据之后往往会伴随着更新数据,那么更新指定索引指定对象字段中数据内容,比如如下命令
POST test/test/1/_update
{"doc":{"content":"ceshi测试"}
}
执行上述 命令之后可以看到 右侧返回结果 result 为 updated 表示数据更新成功
数据更新成功后通过查询命令查看数据可以看到
到这里关于es 日常用到的相关语句差不多整理完了,有需要的可以查阅哈。
相关文章:

日常工作之 Elasticsearch 常用查询语句汇总
日常工作之 Elasticsearch 常用查询语句汇总 查询现有索引创建索引查询索引结构插入数据查询索引数据查看索引磁盘占用信息删除索引查看分词器分词结果指定查询数量指定条件查询数据迁移统计索引数据量更新数据 在使用 es 的过程中,总是会用到 es 的查询语句&#x…...

WeakAuras NES Script(lua)
WeakAuras NES Script 修星脚本字符串 脚本1:NES !WA:2!TMZFWXX1zDxVAs4siiRKiBN4eV(sTRKZ5Z6opYbhQQSoPtsxr(K8ENSJtS50(J3D7wV3UBF7E6hgmKOXdjKsgAvZFaPTtte0mD60XdCmmecDMKruyykDcplAZiGPfWtSsag6myGuOuq89EVDV9wPvKeGBM7U99EFVVVV33VFFB8Z2TJ8azYMlZj7Ur3QDR(…...
JVM 触发类加载的条件有哪些?
目录 一、类加载生命周期 二、主动引用 2.1、创建类的实例 2.2、访问类的静态字段或静态方法 2.3、反射 2.4、初始化类的子类时,先初始化父类 2.5、虚拟机启动时,初始化 main 方法所在的类 2.6、动态语言支持 三、被动引用 3.1、通过子类引用父…...
Android实战经验篇-增加系统分区
系列文章转如下链接: Android Display Graphics系列文章-汇总 Android实战经验篇-系列文章汇总 本文主要包括部分: 一、Android分区说明 1.1 系统分区查看 1.2 分区表修改 1.3 验证新分区 二、源码修改 2.1 generate_extra_images 2.2 fstab 2…...
深入学习 Python 量化编程
深入学习 Python 量化编程 第一章:Python 基础与量化编程环境搭建 1.1 安装必要的库 首先,你需要安装一些在量化编程中常用的 Python 库。可以通过以下命令安装这些库: pip install numpy pandas matplotlib yfinance backtrader scikit-…...

机器学习笔记——特征工程
大家好,这里是好评笔记,公主号:Goodnote,专栏文章私信限时Free。本笔记介绍机器学习中常见的特征工程方法、正则化方法和简要介绍强化学习。 文章目录 特征工程(Fzeature Engineering)1. 特征提取ÿ…...

4种革新性AI Agent工作流设计模式全解析
文章目录 导读:AI Agent的四种关键设计模式如下:1. 反思2. 工具使用3. 规划4. 多Agent协作 总结内容简介: 导读: AI Agent是指能够在特定环境中自主执行任务的人工智能系统,不仅接收任务,还自主制定和执行…...
【入门级】计算机网络学习
网络安全:前端开发者必知:Web安全威胁——XSS与CSRF攻击及其防范-CSDN博客 三次握手四次挥手:前端网络—三次握手四次挥手_前端三次握手-CSDN博客 http协议和https协议的区别:前端网络—http协议和https协议的区别-CSDN博客 网…...
安装 Jenkins 后无法访问用户名或密码且忘记这些凭证怎么办?
Jenkins 是一款功能强大的自动化服务器,在持续集成与交付(CI/CD)领域应用广泛。不过,用户在使用过程中,尤其是首次接触该系统或系统重启后,常常会遇到登录方面的问题。要是 Jenkins 突然要求输入用户名和密…...

day08_Kafka
文章目录 day08_Kafka课程笔记一、今日课程内容一、消息队列(了解)**为什么消息队列就像是“数据的快递员”?****实际意义**1、产生背景2、消息队列介绍2.1 常见的消息队列产品2.2 应用场景2.3 消息队列中两种消息模型 二、Kafka的基本介绍1、…...

安装conda 环境
conda create -n my_unet5 python3.8 (必须设置3.8版本) conda activate my_unet5...

【dockerros2】ROS2节点通信:docker容器之间/docker容器与宿主机之间
🌀 一个中大型ROS项目常需要各个人员分别完成特定的功能,而后再组合部署,而各人员完成的功能常常依赖于一定的环境,而我们很难确保这些环境之间不会相互冲突,特别是涉及深度学习环境时。这就给团队项目的部署落地带来了…...
使用外网访问在群晖中搭建思源docker
还是要折腾,之前发现用公网IP可以访问就没有折腾,今天ip变了,用不了了,一搜,发现有方法可以用域名访问,哎,太好了! 原文:分享我在 群晖 docker 部署 思源笔记 步骤 - 链…...

深度学习中的EMA技术:原理、实现与实验分析
深度学习中的EMA技术:原理、实现与实验分析 1. 引言 指数移动平均(Exponential Moving Average, EMA)是深度学习中一种重要的模型参数平滑技术。本文将通过理论分析和实验结果,深入探讨EMA的实现和效果。 深度学习中的EMA技术:原理、实现与…...

win32汇编环境,窗口程序中对按钮控件常用操作的示例
;运行效果 ;win32汇编环境,窗口程序中对按钮控件常用操作的示例 ;常用的操作,例如创建按钮控件,使其无效,改变文本,得到文本等。 ;将代码复制进radasm软件里,直接就可以编译运行。重点部分加备注。 ;>&g…...
CentOS 7.9 通过 yum 安装 Docker
文章目录 前言一、删除已安装的 Docker二、网络设置三、设置 yum 源,并安装依赖四、设置 Docker 仓库五、安装及使用 Docker六、镜像仓库总结 前言 CentOS 7.9 过了维护期,Docker 官方文档没有了相关的安装文档。记录一下,备用! …...

【开源免费】基于Vue和SpringBoot的英语知识应用网站(附论文)
本文项目编号 T 138 ,文末自助获取源码 \color{red}{T138,文末自助获取源码} T138,文末自助获取源码 目录 一、系统介绍二、数据库设计三、配套教程3.1 启动教程3.2 讲解视频3.3 二次开发教程 四、功能截图五、文案资料5.1 选题背景5.2 国内…...

工具推荐:PDFgear——免费且强大的PDF编辑工具 v2.1.12
PDFgear——免费且强大的PDF编辑工具 v2.1.12 软件简介 PDFgear 是一款 完全免费的 PDF 软件,支持 阅读、编辑、转换、合并 以及 跨设备签署 PDF 文件,无需注册即可使用。它提供了丰富的 PDF 处理功能,极大提升了 PDF 文件管理的便捷性和效…...

Web渗透测试之XSS跨站脚本 防御[WAF]绕过手法
目录 XSS防御绕过汇总 参考这篇文章绕过 XSS payload XSS防御绕过汇总 服务端知道有网络攻击或者xss攻 Html...

MMDetection框架下的常见目标检测与分割模型综述与实践指南
目录 综述与实践指南 SSD (Single Shot MultiBox Detector) 基本配置和使用代码 RetinaNet 基本配置和使用代码 Faster R-CNN 基本配置和使用代码 Mask R-CNN 基本配置和使用代码 Cascade R-CNN 基本配置和使用代码 总结 综述与实践指南 MMDetection是一个基于Py…...

Docker 离线安装指南
参考文章 1、确认操作系统类型及内核版本 Docker依赖于Linux内核的一些特性,不同版本的Docker对内核版本有不同要求。例如,Docker 17.06及之后的版本通常需要Linux内核3.10及以上版本,Docker17.09及更高版本对应Linux内核4.9.x及更高版本。…...

通过Wrangler CLI在worker中创建数据库和表
官方使用文档:Getting started Cloudflare D1 docs 创建数据库 在命令行中执行完成之后,会在本地和远程创建数据库: npx wranglerlatest d1 create prod-d1-tutorial 在cf中就可以看到数据库: 现在,您的Cloudfla…...

关键领域软件测试的突围之路:如何破解安全与效率的平衡难题
在数字化浪潮席卷全球的今天,软件系统已成为国家关键领域的核心战斗力。不同于普通商业软件,这些承载着国家安全使命的软件系统面临着前所未有的质量挑战——如何在确保绝对安全的前提下,实现高效测试与快速迭代?这一命题正考验着…...
PAN/FPN
import torch import torch.nn as nn import torch.nn.functional as F import mathclass LowResQueryHighResKVAttention(nn.Module):"""方案 1: 低分辨率特征 (Query) 查询高分辨率特征 (Key, Value).输出分辨率与低分辨率输入相同。"""def __…...
6️⃣Go 语言中的哈希、加密与序列化:通往区块链世界的钥匙
Go 语言中的哈希、加密与序列化:通往区块链世界的钥匙 一、前言:离区块链还有多远? 区块链听起来可能遥不可及,似乎是只有密码学专家和资深工程师才能涉足的领域。但事实上,构建一个区块链的核心并不复杂,尤其当你已经掌握了一门系统编程语言,比如 Go。 要真正理解区…...
在RK3588上搭建ROS1环境:创建节点与数据可视化实战指南
在RK3588上搭建ROS1环境:创建节点与数据可视化实战指南 背景介绍完整操作步骤1. 创建Docker容器环境2. 验证GUI显示功能3. 安装ROS Noetic4. 配置环境变量5. 创建ROS节点(小球运动模拟)6. 配置RVIZ默认视图7. 创建启动脚本8. 运行可视化系统效果展示与交互技术解析ROS节点通…...

2025年- H71-Lc179--39.组合总和(回溯,组合)--Java版
1.题目描述 2.思路 当前的元素可以重复使用。 (1)确定回溯算法函数的参数和返回值(一般是void类型) (2)因为是用递归实现的,所以我们要确定终止条件 (3)单层搜索逻辑 二…...

Modbus转ETHERNET IP网关:快速冷却系统的智能化升级密钥
现代工业自动化系统中,无锡耐特森Modbus转Ethernet IP网关MCN-EN3001扮演着至关重要的角色。通过这一技术,传统的串行通讯协议Modbus得以在更高速、更稳定的以太网环境中运行,为快速冷却系统等关键设施的自动化控制提供了强有力的支撑。快速冷…...
Clickhouse统计指定表中各字段的空值、空字符串或零值比例
下面是一段Clickhouse SQL代码,用于统计指定数据库中多张表的字段空值情况。代码通过动态生成查询语句实现自动化统计,处理逻辑如下: 从系统表获取指定数据库(替换your_database)中所有表的字段元数据根据字段类型动态…...

Tableau for mac 驱动
Tableau 驱动程序安装指南 对于希望在 Mac OS 上使用 Tableau 进行数据分析的用户来说,确保正确安装相应的驱动程序至关重要。Tableau 支持多种数据库连接方式,并提供官方文档指导如何设置这些连接。 安装适用于 Mac 的 JDBC 或 ODBC 驱动程序 为了使…...