ES高级查询语法DSL实战 - 第504篇

历史文章(文章累计500+)

《国内最全的Spring Boot系列之一》

《国内最全的Spring Boot系列之二》

《国内最全的Spring Boot系列之三》

《国内最全的Spring Boot系列之四》

《国内最全的Spring Boot系列之五》

《国内最全的Spring Boot系列之六》

《国内最全的Spring Boot系列之七》

ElasticSearch重建/创建/删除索引操作 - 第501篇

ElasticSearch文档操作[ES系列] - 第502篇

ElasticSearch文档批量操作[ES系列] - 第503篇

Hi,大家好,我是悟纤。我就是我,不一样的烟火。我就是我,与众不同的小苹果。

这一节来看看ES高级查询Query DSL。

一、DSL语法和数据准备

ES中提供了一种强大的检索数据方式,这种检索方式称之为Query DSL(Domain Specified Language 领域专用语言) , Query DSL是利用Rest API传递JSON格式的请求体(RequestBody)数据与ES进行交互,这种方式的丰富查询语法让ES检索变得更强大,更简洁。

1.1 语法

基本语法如下:

GET /es_db/_doc/_search {json请求体数据}可以简化为下面写法GET /es_db/_search {json请求体数据}

1.2 示例

示例如下:

#无条件查询,默认返回10条数据GET /es_db/_search{  "query":{    "match_all":{}  }}

(1)took:花费时间,单位毫秒。

(2)hits:符合条件的信息。

(3)hits.total:符合条件的总文档。

(4)hits.hits:符合条件结果集,默认前10个文档。

1.3 示例数据

准备数据:

#指定ik分词器PUT /es_db{"settings" : {"index" : {"analysis.analyzer.default.type": "ik_max_word"}}}# 创建文档,指定idPUT /es_db/_doc/1{"name": "张三","sex": 1,"age": 25,"address": "广州天河公园","remark": "java developer"}PUT /es_db/_doc/2{"name": "李四","sex": 1,"age": 28,"address": "广州荔湾大厦","remark": "java assistant"}PUT /es_db/_doc/3{"name": "王五","sex": 0,"age": 26,"address": "广州白云山公园","remark": "php developer"}PUT /es_db/_doc/4{"name": "赵六","sex": 0,"age": 22,"address": "长沙橘子洲","remark": "python assistant"}PUT /es_db/_doc/5{"name": "张龙","sex": 0,"age": 19,"address": "长沙麓谷企业广场","remark": "java architect assistant"}PUT /es_db/_doc/6{"name": "赵虎","sex": 1,"age": 32,"address": "长沙麓谷兴工国际产业园","remark": "java architect"}PUT /es_db/_doc/7{"name": "李虎","sex": 1,"age": 32,"address": "广州番禺节能科技园","remark": "java architect"}PUT /es_db/_doc/8{"name": "张星","sex": 1,"age": 32,"address": "武汉东湖高新区未来智汇城","remark": "golang developer"}

二、match_all查询

2.1 match_all

使用match_all,匹配所有文档,默认只会返回10条数据。

原因:_search查询默认采用的是分页查询,每页记录数size的默认值为10。如果想显示更多数据,指定size

GET /es_db/_search# 等同于GET /es_db/_search{"query":{"match_all":{}}}

2.2返回源数据_source

_source 关键字: 是一个数组,在数组中用来指定展示那些字段

GET /es_db/_search{"query": {"match_all": {}},"_source": ["name","address"]}#在查询中过滤#不查看源数据,仅查看元字段GET /es_db/_search{"_source": false,"query": {"match_all": {}}}#只看以obj.开头的字段GET /es_db/_search{"_source": "obj.*","query": {"match_all": {}}}

2.3返回指定条数size

size 关键字: 指定查询结果中返回指定条数。默认返回值10条。

get /es_db/_search{  "query":{    "match_all": {}  },  "size":2}

2.4分页查询from&size

size:显示应该返回的结果数量,默认是 10

from:显示应该跳过的初始结果数量,默认是 0

from 关键字用来指定起始返回位置,和size关键字连用可实现分页效果

{  "query":{    "match_all": {}  },  "from": 0,  "size":2}

2.5指定字段排序sort

注意:会让得分失效。

get /es_db/_search{  "query":{    "match_all": {}  },  "sort":{    "age":"desc"  }}

我就是我,是颜色不一样的烟火。
我就是我,是与众不同的小苹果。

à悟纤学院:https://t.cn/Rg3fKJD

学院中有Spring Boot相关的课程!点击「阅读原文」进行查看!

SpringBoot视频:http://t.cn/A6ZagYTi

SpringBoot交流平台:https://t.cn/R3QDhU0

SpringSecurity5.0视频:http://t.cn/A6ZadMBe

ShardingJDBC分库分表:http://t.cn/A6ZarrqS

分布式事务解决方案:http://t.cn/A6ZaBnIr

JVM内存模型调优实战:http://t.cn/A6wWMVqG

Spring入门到精通:https://t.cn/A6bFcDh4

大话设计模式之爱你:https://dwz.cn/wqO0MAy7

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【grpc】一、grpc入门,从protobuf开始

一、protobuf简介 Protocol Buffers,是Google公司开发的一种数据描述语言,类似于XML能够将结构化数据序列化,可用于数据存储、通信协议等方面。 关于相关工具的安装网上很多资料了,这里不再赘述。但是有几点需要注意的&#xff0…

【吊打面试官系列】Java高并发篇 - Java 中用到的线程调度算法是什么?

大家好,我是锋哥。今天分享关于 【Java 中用到的线程调度算法是什么?】面试题,希望对大家有帮助; Java 中用到的线程调度算法是什么? 采用时间片轮转的方式。可以设置线程的优先级,会映射到下层的系统上面的…

使用 Python 批量提取 Excel 中的图片(提供工具下载链接)

本文收录于《Python入门核心技术》专栏,专栏总目录:点这里,订阅后可阅读专栏内所有文章。 大家好,我是水滴~~ 本文主要讲解如何利用 Python 来批量提取 Excel 中的图片,分别保存到目录中。并将程序打包成可执行文件&am…

cloudcompare对点云数据打标签流程

1.导入点云txt文件 2.点击小剪刀进行分割 这时视角不能动了,进行框选分割,分割出上牙和下牙 3.打标签 点击加号在前六列的基础上再加上一列,列名为label 这里设置其他为0,上牙的标签为1,下牙为2 左边状态栏可以看到 4.合并为一个…

VueDraggablePlus 支持 Vue2 和 Vue3 的拖拽组件

官网:https://alfred-skyblue.github.io/vue-draggable-plus/

Jmeter接口测试:响应断言元件

响应断言元件介绍: 响应断言元件的功能是对接口的响应信息进行自动断言校验,来判断接口测 试得到的接口返回值是否正确。jmeter中该元件支持将请求或响应的各个字段与 模式字符串进行比较。有了该元件,就可以完成自动化接口测试,…

自媒体内容创作助手:5款必备ai写作工具一览! #科技#知识分享#学习

这些工具不仅可以快速生成高质量的文本内容,还可以根据用户的需求进行个性化定制。它们可以帮助我们节省大量的时间和精力,让我们更加专注于创意和细节的打磨。本文将为大家详细介绍几个AI写作工具,让你在写作领域更上一层楼。 1.元芳写作 …

从MySQL5.7平滑升级到MySQL8.0的最佳实践分享

一、前言 升级需求:将5.7.35升级到8.0.27, 升级方式 in-place升级【关闭现有版本MySQL,将二进制或包替换成新版本并在现有数据目录上启动MySQL并执行升级任务的方式,称为in-place升级】 原版本 5.7.35 CentOS Linux release 7.9.2009 新版本…

数字图像处理项目——基于BCNN和迁移学习的鸟类图像细粒度分类(论文/代码)

完整的论文代码见文章末尾 以下为核心内容 摘要 本文采用了ResNet50、VGG19、InceptionV3和Xception等四种不同的深度神经网络模型,并应用于鸟类图像的细粒度分类问题中,以探究其在该任务上的性能表现。 其中,本文使用了BCNN(B…

文献速递:深度学习胰腺癌诊断--胰腺肿瘤的全端到端深度学习诊断

Title 题目 Fully end-to-end deep-learning-based diagnosis of pancreatic tumors 胰腺肿瘤的全端到端深度学习诊断 01 文献速递介绍 胰腺癌是最常见的肿瘤之一,预后不良且通常是致命的。没有肿瘤的患者只需要进一步观察,而胰腺肿瘤的诊断需要紧…

RequestMapping注解

一、RequestMapping的作用 RequestMapping 注解是 Spring MVC 框架中的一个控制器映射注解,用于将请求映射到相应的处理方法上。具体来说,它可以将指定 URL 的请求绑定到一个特定的方法或类上,从而实现对请求的处理和响应。 二、RequestMappi…

Linux使用宝塔面板安装MySQL结合内网穿透实现公网连接本地数据库

文章目录 推荐前言1.Mysql服务安装2.创建数据库3.安装cpolar3.2 创建HTTP隧道 4.远程连接5.固定TCP地址5.1 保留一个固定的公网TCP端口地址5.2 配置固定公网TCP端口地址 推荐 前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不…

力扣-移除元素

题目 给你一个数组 nums 和一个值 val,你需要 原地 移除所有数值等于 val 的元素,并返回移除后数组的新长度。 不要使用额外的数组空间,你必须仅使用 O(1) 额外空间并 原地 修改输入数组。 元素的顺序可以改变。你不需要考虑数组中超出新长…

Ubuntu 20.04.06 PCL C++学习记录(十九)

[TOC]PCL中点云分割模块的学习 学习背景 参考书籍&#xff1a;《点云库PCL从入门到精通》以及官方代码PCL官方代码链接,&#xff0c;PCL版本为1.10.0&#xff0c;CMake版本为3.16 学习内容 源代码及所用函数 源代码 #include<iostream> #include<vector> #in…

室内人员定位的几种方案

着物联网不断发展&#xff0c;人们对于室内位置的需求日益增多&#xff0c;室内人员定位管理的需求在很多企业中也纷纷尝试&#xff0c;通过数字化手段&#xff0c;对企业内部人员的信息、行为等进行实时监控、分析和管理。这种管理方式可以大大提高企业的管理效率&#xff0c;…

【CicadaPlayer】demuxer_service的简单理解

G:\CDN\all_players\CicadaPlayer-github-0.44\mediaPlayer\SMPMessageControllerListener.cppplayer的demuxer服务类 std::unique_ptr<demuxer_service> mDemuxerService{nullptr};根据option (Cicada::options),可以决定音视频的不同操作,通过 hander可以获得具体使…

CSS - 浮动、定位

浮动 CSS浮动&#xff08;Float&#xff09;是一种布局技术&#xff0c;用于控制元素在页面中的位置。通过将元素浮动到其容器的左侧或右侧&#xff0c;可以使其他元素环绕在其周围。 相关属性&#xff1a; float&#xff1a;用于设置元素的浮动方向。可以设置为left&#xf…

刷题之动态规划-子序列

前言 大家好&#xff0c;我是jiantaoyab&#xff0c;开始刷动态规划的子序列类型相关的题目&#xff0c;子序列元素的相对位置和原序列的相对位置是一样的 动态规划5个步骤 状态表示 &#xff1a;dp数组中每一个下标对应值的含义是什么>dp[i]表示什么状态转移方程&#xf…

[工具使用]绕过付费-适用于谷歌/火狐/Edge浏览器

绕过付费-适用于谷歌/火狐/Edge浏览器 bypass-paywalls是一款浏览器插件&#xff0c;可以帮助绕过选定网站的付费 链接&#xff1a;https://github.com/iamadamdev/bypass-paywalls-chrome 一、谷歌/Edge浏览器安装说明&#xff08;支持自定义网站&#xff09; 1、从Github下…

Xinstall助力提升用户体验:一键打开App用户页面

在移动互联网时代&#xff0c;App已经成为我们日常生活中不可或缺的一部分。然而&#xff0c;随着App数量的激增&#xff0c;如何让用户更便捷地打开和使用App&#xff0c;提升用户体验&#xff0c;成为了开发者和广告主们亟待解决的问题。此时&#xff0c;Xinstall作为国内专业…