关于ES的查询

查询结果那么多字段都是什么?

为什么会提到这个问题呢,因为默认ES查询的结果会有很多信息,我们可能并不希望要那么多数据,所以你需要了解这些字段都表示什么,并正确的返回和使用它们。

took– Elasticsearch 运行查询所用的时间(以毫秒为单位)
timed_out– 搜索请求是否超时
_shards– 搜索了多少个分片以及分片数量的细分 成功、失败或被跳过。
max_score– 找到的最相关文件的分数
hits.total.value- 找到的匹配文档数量
hits.sort- 文档的排序位置(不按 Relevance Score 排序时)
hits._score- 文档的相关性分数(在使用match_all)每个搜索请求都是独立的:Elasticsearch 不维护任何 state 信息。要分页浏览搜索结果,请指定 请求中的 and 参数。from size

常见搜索查询示例及解释

注意:我这里先说明一下,下面遇到了可再体会,mappings指定了字段格式,所以查询时与mappings也是有关系的,不同的字段类型查询的语法可能会不同。

从全部数据中排序分页

GET /myes_client_test/_search
{"query": { "match_all": {} },	"sort": [{ "id": "asc" }],"from": 10,"size": 10
}GET /这里是我的索引/_search  (本文中只解释这一次哦);
query 表示查询,match_all:{} 表示查询所有(固定格式);
sort 表示结果要按什么规则排序,id是你数据中的字段,支持asc/desc升序/降序;
from 表示跳过多少条开始取值,类似mysql的offset;
size 表示结果要返回多少条数据,类似mysql的limit;
通过上面解释了解哪些是关键字,哪些是自己数据中的字段了吧?需要多加练习

查询数字字段的最大值/最小值

POST /myes_client_test/_search?size=0
{"aggs": {"max_id": { "max": { "field": "id" } }}
}
aggs 表示使用ES聚合模式查询;
max_id 是自定义的,类似SQL中AS的作用‘select max(id) as max_id’为取值时起个好听的名字;
max 是关键字最大值;
field 是关键字,指定按数据中id字段筛选取最大值;
⚠️ size=0 也很重要,因为ES默认会返回10条文档数据,指定size=0表示我们只需要聚合的结果就好了,不需要文档数据。min 是最小值关键字,知道该怎么用了吧?

字符串查询条件

# 例如按姓名查询,在SQL中最常用到条件
name = '张三'				(可以利用到索引,性能较好)
name like '张三%'		(可以利用到索引,性能较好)
name like '%张三'		(不能利用到索引,性能差)
name like '%张三%'		(不能利用到索引,性能差)
# 那么上面几种情况在ES如何实现呢?
1.精准查询
POST /_sql?format=txt
{"query": "SELECT * FROM myes_client_test WHERE name = '张玉霞'"
}同
POST /myes_client_test/_search
{"size" : 1,"query" : {"term" : {"name.keyword" : {"value" : "张玉霞"}}},"_source" : true
}
上面 _source 表示是否返回 _source 字段(这里面是完整的数据),不指定"_source"默认为true;
term 表示精准匹配;
曾使用下面方式进行查询,但没有查询出来,那么有什么区别呢?:
{"size": 1, "query": {"term": { "name" : "张玉霞" }}
}
这里就要回看mappings了,我在插入数据时并没有去指定mappings,回看索引设置,发现name字段默认是keyword;将字段设置为keyword类型可以使用term加字段.keyword来精确匹配查询。
2.模糊查询 (like)
POST /myes_client_test/_search
{"size" : 10,"query" : {"wildcard" : {"name.keyword" : {"wildcard" : "张玉*"}}}
}
模糊查询时 size 字段是有效的,如果上面匹配的结果数>10 那么最多返回10条。
wildcard 表示通配符查询,*同SQL中%的效果。

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

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

相关文章

集群聊天服务器(8)用户登录业务

目录 登录状态业务层代码数据模型层代码记录用户的连接信息以及线程安全问题客户端异常退出业务 登录状态 登录且状态变为online 业务层代码 #include "chatservice.hpp" #include "public.hpp" #include <string> #include <muduo/base/Loggi…

04 - Clickhouse-21.7.3.14-2单机版安装

目录 一、准备工作 1、确定防火墙处于关闭状态 2、CentOS 取消打开文件数限制 3、安装依赖 4、CentOS取消SELINUX 二、单机安装 2.1、下载安装 2.2、安装这4个rpm包 2.3、修改配置文件 2.4、启动服务 2.5、关闭开机自启 2.6、使用Client连接server 一、准备工作 1…

RabbitMQ消息可靠性保证机制4--消费端限流

7.7 消费端限流 在类似如秒杀活动中&#xff0c;一开始会有大量并发写请求到达服务端&#xff0c;城机对消息进行削峰处理&#xff0c;如何做&#xff1f; 当消息投递的速度远快于消费的速度时&#xff0c;随着时间积累就会出现“消息积压”。消息中间件本身是具备一定的缓冲…

flex布局样式 类名化scss(sass)

sass 和less 语法有差异需要转化一下 $directionList: row, row-reverse, column, column-reverse; $justifyContentList: flex-start, flex-end, center, space-between, space-around, space-evenly; $alignItemsList: flex-start, flex-end, center, baseline, stretch;mixi…

【phpseclib】 PHP 使用加密算法 RSA、DES、AES等

一、Composer 下载 phpseclib # 我使用的是 phpseclib3 composer require phpseclib/phpseclib二、RSA 加密解密 // 我使用的是 phpseclib3use phpseclib3\Crypt\RSA;$type PKCS8; // 看需求选其一, PKCS8 | PKCS1 | JWK | MSBLOB | OpenSSH | PSS | PuTTY | Raw | WML $rsa…

labview中的调用链

在有些项目中会用到调用链&#xff0c;用我自己的理解来说就像是递归函数那样层层调用&#xff0c;然后结果回退到第一次开始调用的main函数哪里&#xff0c;这里对于传值的时候还是非常好用&#xff0c;通过更改子VI然后来改变主VI的里面函数的值来实现这个效果。 我们可以看…

django从入门到实战(四)——模型与数据库

1. 模型的定义与数据迁移 1.1 模型的定义 在 Django 中&#xff0c;模型是一个 Python 类&#xff0c;用于定义数据库中的数据结构。每个模型类对应数据库中的一张表&#xff0c;类的属性对应表中的字段。 示例&#xff1a; from django.db import modelsclass Blog(models…

MySQL初学之旅(3)约束

目录 1.前言 2.正文 2.1约束类型 2.2NULL约束 2.3UNIQUE约束 2.4DEFAULT约束 2.5PRIMARY KEY主键约束 2.6FOREIGN KEY外键约束 2.7CHECK约束 3.小结 1.前言 哈喽大家好啊&#xff0c;今儿来继续给大家分享最近学习的MySQL和约束相关的知识点&#xff0c;希望大家一起…

Ubuntu Linux使用前准备动作 配置SSH

在 Ubuntu 系统中配置 SSH 服务可以通过以下步骤进行&#xff1a; 1、安装ssh服务 1&#xff09;打开终端&#xff08;可以使用快捷键 Ctrl Alt T&#xff09;。 2&#xff09;运行以下命令安装 OpenSSH 服务器&#xff1a; sudo apt-get update&#xff1a;这一步是更新…

网络爬虫 Python-(初始篇1 后期照样有)

一、网络爬虫基础概念 定义&#xff1a;网络爬虫&#xff08;Web Crawler&#xff09;也叫网络蜘蛛&#xff08;Web Spider&#xff09;&#xff0c;是一种按照一定的规则&#xff0c;自动地抓取万维网信息的程序或者脚本。它可以从网页上获取各种数据&#xff0c;比如文本内容…

在MATLAB中实现自适应滤波算法

自适应滤波算法是一种根据信号特性自动调整滤波参数的数字信号处理方法&#xff0c;其可以有效处理噪声干扰和信号畸变问题。在许多实时数据处理系统中&#xff0c;自适应滤波算法得到了广泛应用。在MATLAB中&#xff0c;可以使用多种方法实现自适应滤波算法。本文将介绍自适应…

wordpress独立站首页调用产品的三种方法

在WordPress独立站中&#xff0c;展示最新产品、最热门产品和推荐产品是吸引用户和促进销售的重要手段。以下是三种实现这些功能的方法&#xff1a; 1. 使用WooCommerce内置功能 如果你的WordPress站点使用了WooCommerce插件来管理产品&#xff0c;你可以利用它的内置功能来展…

解决BUG: Since 17.0, the “attrs“ and “states“ attributes are no longer used.

从Odoo 17.0开始&#xff0c;attrs和states属性不再使用&#xff0c;取而代之的是使用depends和domain属性来控制字段的可见性和其他行为。如果您想要在选择国家之后继续选择州&#xff0c;并且希望在选择了国家之后才显示州字段&#xff0c;您可以使用depends属性来实现这一点…

【Vue笔记】基于vue3 + element-plus + el-dialog封装一个自定义的dialog弹出窗口组件

这篇文章,介绍一下如何使用vue3+element-plus中的el-dialog组件,自己封装一个通用的弹出窗口组件。运行效果如下所示: 目录 1.1、父子组件通信 1.2、自定义VDialog组件(【v-model】模式) 1.2.1、编写VDialog组件代码 1.2.2、使用VDialog组件 1.2.3、运行效果 1.3、自…

学习笔记024——Ubuntu 安装 Redis遇到相关问题

目录 1、更新APT存储库缓存&#xff1a; 2、apt安装Redis&#xff1a; 3、如何查看检查 Redis版本&#xff1a; 4、配置文件相关设置&#xff1a; 5、重启服务&#xff0c;配置生效&#xff1a; 6、查看服务状态&#xff1a; 1、更新APT存储库缓存&#xff1a; sudo apt…

【Next】中间件

概述 Next.js 的 中间件 (Middleware) 是一种在请求完成之前运行的函数&#xff0c;用于对入站请求进行处理和操作。它可以在路由匹配前执行逻辑&#xff0c;用于身份验证、请求重写、重定向、设置响应头等任务。 使用场景 身份验证&#xff1a;在用户访问页面前检查登录状态…

学习记录:js算法(九十九):冗余连接

文章目录 冗余连接思路一 冗余连接 树可以看成是一个连通且 无环 的 无向 图。 给定往一棵 n 个节点 (节点值 1&#xff5e;n) 的树中添加一条边后的图。添加的边的两个顶点包含在 1 到 n 中间&#xff0c;且这条附加的边不属于树中已存在的边。图的信息记录于长度为 n 的二维数…

记录———封装uni-app+vant(u-upload)上传图片组件

上传图片回显&#xff0c;自定义图片回显样式 这段代码是一个Vue组件&#xff0c;主要实现了图片上传和预览的功能。组件接收了父组件传递的图片列表、最大图片数量和上传状态等属性。在模板中&#xff0c;使用了uni-easyinput组件和u-upload组件来实现图片上传和预览功能。在…

【图像处理识别】数据集合集!

本文将为您介绍经典、热门的数据集&#xff0c;希望对您在选择适合的数据集时有所帮助。 1 CNN-ImageProc-Robotics 机器人 更新时间&#xff1a;2024-07-29 访问地址: GitHub 描述&#xff1a; 通过 CNN 和图像处理进行机器人对象识别项目侧重于集成最先进的深度学习技术和…

python-docx 用法

一、简介 python-docx 是一个非常流行的第三方 Python 库&#xff0c;用于创建、修改和读取 Microsoft Word 文档&#xff08;.docx 文件&#xff09;。该库功能强大且易于使用&#xff0c;常用于自动化生成报告、格式化文档或从 Word 文档中提取信息。 二、常见用法 1. 安装…