ES常见查询总结
目录
- 1:查询总数
- 2:查询所有数据
- 3:查询指定条数
- 4:根据ID查询
- 5:一个查询字符串搜索
- 6:match搜索
- 7:term搜索
- 8:bool搜索
- 9:must多条件匹配查询
- 10:Should满足一个条件查询
- 11: must_not必须不匹配查询
- 12:多个字段查询内容
- 13:一个字段查询多个内容
- 14:通配符和正则匹配
- 15:前缀查询
- 16:短语匹配
- 17:范围查询
- 18:字段存在查询
1:查询总数
GET demo_person/_count
{ "query": {"match_all": {}}
}
上述用sql表示:
SELECT COUNT(*) FROM demo_person
2:查询所有数据
GET demo_person/_search
{ "query": {"match_all": {}}
}
上述用sql表示:
SELECT * FROM demo_person
3:查询指定条数
GET demo_person/_search
{ "size": 20, "query": {"match_all": {}}
}
上述用sql表示:
SELECT * FROM demo_person LIMIT 20
4:根据ID查询
GET /demo_person/_doc/1?pretty
上述用sql表示:
SELECT * FROM demo_person WHERE _id = '1'
5:一个查询字符串搜索
GET /demo_person/_search?q=last_name:Smith
上述用sql表示:
SELECT * FROM demo_person WHERE last_name = 'Smith'
6:match搜索
这是一个 Elasticsearch 查询语句,用于在索引为 demo_person 中查询 last_name 字段包含 “Smith” 的文档,
特点先分词,再拿词去匹配倒排索引
GET /demo_person/_search
{"query" : {"match" : {"last_name" : "Smith"}}
}
上述用sql表示:
SELECT * FROM demo_person WHERE last_name ='Smith'
7:term搜索
这是一个 Elasticsearch 查询语句,用于在索引为 demo_person 中查询 last_name 字段精确匹配值为 “Smith” 的文档。term:不分词直接匹配词条
GET /demo_person/_search
{"query": {"term": {"last_name": {"value": "Smith"}}}
}
上述用sql表示:
SELECT * FROM demo_person WHERE last_name = 'Smith'
8:bool搜索
这是一个 Elasticsearch 查询语句,用于在索引为 demo_person 中查询 last_name 字段包含 “Smith” 且 age 大于等于 30 的文档。
must: 完全匹配条件 相当于sql中的and
should: 至少满足一个条件 相当于sql中的 or
must_not: 文档必须不匹配条件 相当于sql中的!=
GET /demo_person/_search
{"query": {"bool": {"must": [{"match": {"last_name": "Smith"}}],"filter": [{"range": {"age": {"gte": 30}}}]}}
}
上述用sql表示:
SELECT * FROM demo_person WHERE last_name = 'Smith' AND age >= 30
9:must多条件匹配查询
这是一个 Elasticsearch 查询语句,用于在索引为 demo_person 中查询 last_name 字段包含 “Smith” 且 age 等于 32 的文档。
GET /demo_person/_search
{"query": {"bool": {"must": [{"match": {"last_name": "Smith"}},{"match": {"age": 32}}]}}
}
上述用sql表示:
SELECT * FROM demo_person WHERE last_name = 'Smith' AND age = 32
10:Should满足一个条件查询
这是一个 Elasticsearch 查询语句,用于在索引为 demo_person 中查询 last_name 字段包含 “Fir” 或 age 等于 32 的文档。
GET /demo_person/_search
{"query": {"bool": {"should": [{"match": {"last_name": "Fir"}},{"match": {"age": 32}}]}}
}
上述用sql表示:
SELECT * FROM demo_person WHERE last_name = 'Fir' OR age = 32
11: must_not必须不匹配查询
这是一个 Elasticsearch 查询语句,用于在索引为 demo_person 中查询 last_name 字段不包含 “Fir” 且 age 不等于 32 的文档
GET /demo_person/_search
{"query": {"bool": {"must_not": [{"match": {"last_name": "Fir"}},{"match": {"age": 32}}]}}
}
上述用sql表示:
SELECT * FROM demo_person WHERE last_name != 'Fir' AND age != 32
12:多个字段查询内容
这是一个 Elasticsearch 查询语句,用于在索引为 demo_person 中查询 last_name 和 about 字段包含 “collect” 或 “rock” 的文档。
GET /demo_person/_search
{"query": {"multi_match": {"query": "collect rock","fields": ["last_name","about"]}}
}
上述用sql表示:
SELECT * FROM demo_person WHERE last_name LIKE '%collect%' OR about LIKE '%collect%' OR last_name LIKE '%rock%' OR about LIKE '%rock%'
13:一个字段查询多个内容
GET /demo_person/_search
{"query": {"terms": {"about": ["rock","hehe" ]}}
}
上述用sql表示:
SELECT * FROM demo_person WHERE about IN ('rock', 'hehe')
14:通配符和正则匹配
GET /demo_person/_search
{"query": {"bool": {"filter": [{"wildcard":{"last_name":"*mi*"}}]}}
}
上述用sql表示:
SELECT * FROM demo_person WHERE last_name LIKE '%mi%'
15:前缀查询
GET /demo_person/_search
{"query": {"prefix": {"last_name": {"value": "Smi"}}}
}
上述用sql表示:
SELECT * FROM demo_person WHERE last_name LIKE 'Smi%'
16:短语匹配
这是一个 Elasticsearch 查询语句,用于在索引为 demo_person 中查询 about 字段包含短语 “rock climbing” 的文档。
GET /demo_person/_search
{"query" : {"match_phrase" : {"about" : "rock climbing"}}
}
上述用sql表示:
SELECT * FROM demo_person WHERE about LIKE '%rock climbing%'
17:范围查询
GET demo_person/_search
{ "query": {"range": {"age": {"gte": 30,"lt": 35}}}
}
上述用sql表示:
SELECT * FROM demo_person WHERE age >= 30 AND age < 35
18:字段存在查询
GET /demo_person/_search
{"query": {"exists": {"field": "age"}}
}
上述用sql表示:
SELECT * FROM demo_person WHERE age IS NOT NULL
相关文章:
ES常见查询总结
目录 1:查询总数2:查询所有数据3:查询指定条数4:根据ID查询5:一个查询字符串搜索6:match搜索7:term搜索8:bool搜索9:must多条件匹配查询10:Should满足一个条件查询11: must_not必须不匹配查询12:多个字段查询内容13:一个字段查询多个内容14:通配符和正则匹配15:前缀查询16:短语…...
Spring Boot Docker Compose 支持中文文档
本文为官方文档直译版本。原文链接 Spring Boot Docker Compose 支持中文文档 引言服务连接自定义镜像跳过特定的容器使用特定Compose文件等待容器就绪控制 Docker Compose 的生命周期激活 Docker Compose 配置文件 引言 Docker Compose 是一种流行的技术,可用于为…...
智慧城市/一网统管建设:人员危险行为检测算法,为城市安全保驾护航
随着人们压力的不断增加,经常会看见在日常生活中由于小摩擦造成的大事故。如何在事故发生时进行及时告警,又如何在事故发生后进行证据搜索与事件溯源?旭帆科技智能视频监控人员危险行为/事件检测算法可以给出答案。 全程监控,有源…...
C语言:求和1+1/2-1/3+1/4-1/5+……-1/99+1/100
#include<stdio.h> int main() {int i 0;double sum 0.0;int flag 1;for (i 1;i < 100;i){sum 1.0 / i * flag;flag -flag;}printf("sum%lf\n", sum);return 0; }...
学习什么知识不会过时
近况💁🏻 最近这段时间,我真的很糟糕。工作中满负荷做需求,闲了就想玩游戏放松,业余搞些东西的时间很少。本来就有些焦虑,这种状态下更是有些 suffering。究其原因,都是因为部门转换的问题。 一…...
C# WPF上位机开发(ExtendedWPFToolkit扩展包使用)
【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing 163.com】 虽然个人人为当前的c# wpf内容已经足够多,但是肯定还是有很多个性化的需求没有满足。比如说不够好看,比如说动画效果不好&a…...
【IOS开发】传感器 SensorKit
资源 官方文档 https://developer.apple.com/search/?qmotion%20graph&typeDocumentation SensorKit 使应用程序能够访问选定的原始数据或系统从传感器处理的指标。 步骤信息加速度计或旋转速率数据用户手腕上手表的配置物理环境中的环境光有关用户日常通勤或旅行的详细…...
【C++】封装:练习案例-点和圆的关系
练习案例:点和圆的关系 设计一个圆形类(Circle),和一个点类(Point),计算点和圆的关系。 思路: 1)创建点类point.h和point.cpp 2)创建圆类circle.h和circle…...
【vue】正则表达式限制input的输入:
文章目录 1、只能输入大小写字母、数字、下划线:/[^\w_]/g2、只能输入小写字母、数字、下划线:/[^a-z0-9_]/g3、只能输入数字和点:/[^\d.]/g4、只能输入小写字母、数字、下划线:/[^\u4e00-\u9fa5]/g5、只能输入数字:/\…...
异步导入中使用SecurityUtils.getSubject().getPrincipal()获取LoginUser对象导致的缓存删除失败问题
结论 SecurityUtils.getSubject().getPrincipal()实际用的也是ThreadLocal,而ThreadLocal和线程绑定,异步会导致存数据丢失,注意! 业务背景 最近,系统偶尔会出现excel导入成功,但系统却提示存在进行中的…...
大数据机器学习深度解读决策树算法:技术全解与案例实战
大数据机器学习深度解读决策树算法:技术全解与案例实战 本文深入探讨了机器学习中的决策树算法,从基础概念到高级研究进展,再到实战案例应用,全面解析了决策树的理论及其在现实世界问题中的实际效能。通过技术细节和案例实践&…...
【开源Mongdb驱动】SpringBoot+Mybatis+Mongdb融合使用教程
#【开源Mongdb驱动】SpringBootMybatisMongdb无缝融合使用教程 介绍 本文介绍一款基于JAVA开源的mongodb jdbc驱动为基础的无缝与springbootmybatis融合使用案例 mongodb JDBC 使用案例 https://blog.csdn.net/gongbing798930123/article/details/135002530 《基于开源的JA…...
freeRTOS使用
创建第一个FreeRTOS程序 1、官网源码下载 (1)进入FreeRTOS官网FreeRTOS professional services for application and RTOS development and consulting. FreeRTOS is an Open Source Code RTOS (2)点击下载FreeRTOS 2、处理目录 &…...
基于vue的线上点餐系统论文
基于vue的线上点餐系统 摘要 随着信息技术在管理上越来越深入而广泛的应用,管理信息系统的实施在技术上已逐步成熟。本文介绍了线上点餐系统的开发全过程。通过分析线上点餐系统管理的不足,创建了一个计算机管理线上点餐系统的方案。文章介绍了线上点餐…...
【Windows】windows11右键默认显示更多选项的办法
Windows11系统的右键菜单显示,需要多点一次“显示更多选项”才能看到所有菜单内容,按下面步骤简单设置一下就能恢复成Windows经典的右键菜单显示。 1. 2.输入命令【reg.exe add "HKCU\Software\Classes\CLSID\{86ca1aa0-34aa-4e8b-a509-50c905bae2a…...
推荐使用过很好用的api,含免费次数
IP归属地-IPv4城市级:根据IP地址查询归属地信息,支持到城市级,包含国家、省、市、和运营商等信息。IP归属地-IPv6城市级:根据IP地址(IPv6版本)查询归属地信息,支持到中国大陆地区(不…...
QT最大线程并发
声明一个处理函数;int timeTask(); 头文件: #include <QtConcurrent> #include <QFuture> 并发处理改函数的任务,直到处理完成: QFuture<int> ft QtConcurrent::run(this, &ch72_concurrent::timeTask);while (!f…...
在金属/绝缘体/p-GaN栅极高电子迁移率晶体管中同时实现大的栅压摆幅和增强的阈值电压稳定性
标题:Simultaneously Achieving Large Gate Swing and Enhanced Threshold Voltage Stability in Metal/Insulator/p-GaN Gate HEMT (IEDM2023) 摘要 摘要:对于增强型GaN功率晶体管的发展,栅压摆幅和阈值电压稳定性通常是互相排斥的。本文展…...
Redis第1讲——入门简介
Java并发编程的总结和学习算是告一段落了,这段时间思来想去,还是决定把Redis再巩固和学习一下。毕竟Redis不论是在面试还是实际应用中都是极其重要的,在面试中诸如Redis的缓存问题、热key、大key、过期策略、持久化机制等;还有在实…...
数据科学知识库
我的博客是一个技术分享平台,涵盖了机器学习、数据可视化、大数据分析、数学统计学、推荐算法、Linux命令及环境搭建,以及Kafka、Flask、FastAPI、Docker等组件的使用教程。 在这个信息时代,数据已经成为了一种新的资源,而机…...
Docker 离线安装指南
参考文章 1、确认操作系统类型及内核版本 Docker依赖于Linux内核的一些特性,不同版本的Docker对内核版本有不同要求。例如,Docker 17.06及之后的版本通常需要Linux内核3.10及以上版本,Docker17.09及更高版本对应Linux内核4.9.x及更高版本。…...
使用VSCode开发Django指南
使用VSCode开发Django指南 一、概述 Django 是一个高级 Python 框架,专为快速、安全和可扩展的 Web 开发而设计。Django 包含对 URL 路由、页面模板和数据处理的丰富支持。 本文将创建一个简单的 Django 应用,其中包含三个使用通用基本模板的页面。在此…...
基于距离变化能量开销动态调整的WSN低功耗拓扑控制开销算法matlab仿真
目录 1.程序功能描述 2.测试软件版本以及运行结果展示 3.核心程序 4.算法仿真参数 5.算法理论概述 6.参考文献 7.完整程序 1.程序功能描述 通过动态调整节点通信的能量开销,平衡网络负载,延长WSN生命周期。具体通过建立基于距离的能量消耗模型&am…...
MongoDB学习和应用(高效的非关系型数据库)
一丶 MongoDB简介 对于社交类软件的功能,我们需要对它的功能特点进行分析: 数据量会随着用户数增大而增大读多写少价值较低非好友看不到其动态信息地理位置的查询… 针对以上特点进行分析各大存储工具: mysql:关系型数据库&am…...
Debian系统简介
目录 Debian系统介绍 Debian版本介绍 Debian软件源介绍 软件包管理工具dpkg dpkg核心指令详解 安装软件包 卸载软件包 查询软件包状态 验证软件包完整性 手动处理依赖关系 dpkg vs apt Debian系统介绍 Debian 和 Ubuntu 都是基于 Debian内核 的 Linux 发行版ÿ…...
CMake基础:构建流程详解
目录 1.CMake构建过程的基本流程 2.CMake构建的具体步骤 2.1.创建构建目录 2.2.使用 CMake 生成构建文件 2.3.编译和构建 2.4.清理构建文件 2.5.重新配置和构建 3.跨平台构建示例 4.工具链与交叉编译 5.CMake构建后的项目结构解析 5.1.CMake构建后的目录结构 5.2.构…...
CMake控制VS2022项目文件分组
我们可以通过 CMake 控制源文件的组织结构,使它们在 VS 解决方案资源管理器中以“组”(Filter)的形式进行分类展示。 🎯 目标 通过 CMake 脚本将 .cpp、.h 等源文件分组显示在 Visual Studio 2022 的解决方案资源管理器中。 ✅ 支持的方法汇总(共4种) 方法描述是否推荐…...
探索Selenium:自动化测试的神奇钥匙
目录 一、Selenium 是什么1.1 定义与概念1.2 发展历程1.3 功能概述 二、Selenium 工作原理剖析2.1 架构组成2.2 工作流程2.3 通信机制 三、Selenium 的优势3.1 跨浏览器与平台支持3.2 丰富的语言支持3.3 强大的社区支持 四、Selenium 的应用场景4.1 Web 应用自动化测试4.2 数据…...
【前端异常】JavaScript错误处理:分析 Uncaught (in promise) error
在前端开发中,JavaScript 异常是不可避免的。随着现代前端应用越来越多地使用异步操作(如 Promise、async/await 等),开发者常常会遇到 Uncaught (in promise) error 错误。这个错误是由于未正确处理 Promise 的拒绝(r…...
MySQL 主从同步异常处理
阅读原文:https://www.xiaozaoshu.top/articles/mysql-m-s-update-pk MySQL 做双主,遇到的这个错误: Could not execute Update_rows event on table ... Error_code: 1032是 MySQL 主从复制时的经典错误之一,通常表示ÿ…...
