ElasticSearch(四)【高级查询】

news/2024/5/17 4:47:51/文章来源:https://blog.csdn.net/Wei_Naijia/article/details/126923238

四、高级查询


说明

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

语法

### _doc可选,查询效果都一样
# GET /索引名/_doc/_search {json格式请求体数据}
# GET /索引名/_search {json格式请求体数据}

4.1 分词与不分词查询

查询所有文档记录

### match_all查询文档中所有记录
GET /product/_doc/_search
{"query": {"match_all": {}}
}

在这里插入图片描述

term关键词分词查询

### 关键词分词查询 term
GET /product/_doc/_search
{"query": {"term": {"description": {"value": "blog"}}}
}
【注意】
映射类型说明
- integer: 搜索时不分词
- double: 搜索时不分词
- date: 搜索时不分词
- keyword: 搜索时需要输入全部内容,不分词,就像SQL当中的eq
- text: 中文单字分词(一个字一个字进行分隔),英文单词分词(me、like、you...)

在这里插入图片描述

小结

  • 在ES中的Mapping Type中keyword、date、integer、long、double、boolean、这些类型不分词,只有text类型分词
  • 通过使用term查询得知,es默认使用标准分词器(StandardAnalyzer),中文单字分词,英文单词分词

4.2 类型关键字查询

range关键字范围查询

### 范围查询 range	gte ===> 大于等于 lte ===> 小于等于
GET /product/_doc/_search
{"query": {"range": {"price": {"gte": 0,"lte": 5}}}
}

prefix关键字前缀查询

### 前缀查询 prefix
GET /product/_doc/_search
{"query": {"prefix": {"title": {"value": "vin"}}}
}

wildcard关键字通配符查询

### 通配符查询 wildcard	
# ?用来匹配一个任意字符
# *用来匹配多个任意字符
GET /product/_doc/_search
{"query": {"wildcard": {"description": {"value": "*blog"}}}
}

ids关键字多id查询

### 多id查询 ids	
GET /product/_doc/_search
{"query": {"ids": {"values": [1,2,3]}}
}

fuzzy关键字模糊查询

### 模糊查询 fuzzy	
GET /product/_doc/_search
{"query": {"fuzzy": {"description": "blog"}}
}
【注意】
fuzzy 模糊查询,最大模糊错误必须在[0,2]之间
- 搜索关键字长度为2不允许存在模糊
- 搜索关键字长度为3-5允许一次模糊
- 搜索关键字长度大于5允许最大两次模糊

bool关键字布尔查询

### 布尔查询 bool
GET /product/_doc/_search
{"query": {"bool": {"must": [{"term": {"price": {"value": 1.7}}}]}}
}GET /product/_doc/_search
{"query": {"bool": {"must": [{"ids": {"values": [1,2,3,4,5,6,7]}}]}}
}
【注意】
bool可以用来组合多个条件实现复杂查询
- must: 相当于&&同时成立
- should: 相当于||成立一个就行
- must_not: 相当于!,不能满足任何一个

multi_match关键字多字段查询

### 多字段查询 multi_match
GET /product/_doc/_search
{"query": {"multi_match": {"query": "vinjcent","fields": ["title","description"]}}
}
【注意】
先根据mapping字段类型分词("title""description"),将查询条件分词之后进行查询该字段(中文单字分词、英文单词分词),如果该字段不分词就会将查询条件作为整体进行查询

query_string关键字默认字段查询

### 默认字段查询 query_string# title为keyword类型,不分词(需要全部输入内容符合)
GET /product/_doc/_search
{"query": {"query_string": {"default_field": "title","query": "vinjcent"}}
}# description为text类型,分词(根据部分输入内容)
GET /product/_doc/_search
{"query": {"query_string": {"default_field": "description","query": "blog"}}
}
【注意】
根据字段的类型,将查询条件进行分词后进行查询

highlight关键字高亮查询

### 高亮查询 highlight
# 例如百度搜索spring
GET /product/_doc/_search
{"query": {"query_string": {"default_field": "description","query": "blog"}},"highlight": {"fields": {"*": {}}}
}
【注意】
可以让符合条件的文档中的关键词高亮,高亮并没有修改原始的文档,只是单独将高亮结果单独拿出来# 自定义高亮标签tags,开启多个字段高亮require_field_match
GET /product/_doc/_search
{"query": {"query_string": {"default_field": "description","query": "blog"}},"highlight": {"pre_tags": ["<span style='color:red;'>"],"post_tags": ["</span>"],"require_field_match": "false","fields": {"*": {}}}
}

在这里插入图片描述

在这里插入图片描述

size关键字条数查询

### 条数查询 size
GET /product/_doc/_search
{"query": {"match_all": {}},"size": 2
}【注意】
指定查询结果中返回指定条数目.默认返回值10

from关键字分页查询

### 分页查询 from size
GET /product/_doc/_search
{"query": {"match_all": {}},"from": 0,"size": 2
}【注意】
用来指定起始返回位置,和size关键字连用可实现分页效果

sort关键字排序

### 排序 sort
GET /product/_doc/_search
{"query": {"match_all": {}},"from": 0,"size": 2,"sort": [{"id": {"order": "desc"}}]
}【注意】
desc/asc

_source关键字返回指定字段

### 返回指定字段 _source
GET /product/_doc/_search
{"query": {"match_all": {}},"from": 0,"size": 2,"sort": [{"id": {"order": "desc"}}],"_source": ["id","title","description"]
}【注意】
是一个数组,在数组中用来指定展示哪些字段

在这里插入图片描述

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

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

相关文章

Grafana alert预警+钉钉通知

1 Grafana alert预警 如下图所示&#xff0c;主要是前3步&#xff0c;设置alert rules、contact points 、notification policies。alert rules主要设置触发警告的规则&#xff1b;contact points设置通过什么发送预警&#xff0c;如钉钉&#xff1b;notification policies 将…

哲学家干饭问题 C++

哲学家干饭问题 C 哲学家就餐问题可以这样表述&#xff0c;假设有五位哲学家围坐在一张圆形餐桌旁&#xff0c;做以下两件事情之一&#xff1a;吃饭&#xff0c;或者思考。吃东西的时候&#xff0c;他们就停止思考&#xff0c;思考的时候也停止吃东西。餐桌上有五碗意大利面&am…

Vue2.0到3.0的过渡,setup,ref函数,reactive函数,计算属性computed

setup 1、Vue3.0的组件中所有用到的:数据、方法等等&#xff0c;均要配置在setup中&#xff0c;若要使用里面的数据&#xff0c;可以用return将其返回出来 2、若在setup中返回的是一个对象&#xff0c;则对象中的数据、方法、在模板中均可直接使用 例如 <template><di…

[Git] 系列三随意修改提交记录以及一些技巧

[Git] 系列三随意修改提交记录以及一些技巧 Author: Xin Pan Date: 2022.09.17 文章目录[Git] 系列三随意修改提交记录以及一些技巧整理提交记录未知提交号哈希值时怎么办&#xff1f;一些技巧本地栈式提交方法一方法二TagDescribe高级命令总结好了&#xff0c;大概总结好了。…

搭建游戏要选什么样的服务器?

服务器是游戏平台数据传输的重要载体&#xff0c;事关我们游戏创业发展的稳定性、安全性。那么&#xff0c;游戏平台搭建要选什么服务器&#xff1f;有什么参考指标&#xff1f;本文将带领大家一探究竟&#xff01; 首先是“游戏平台搭建要选择什么服务器”&#xff0c;我们可…

论文阅读_对比学习_SimCSE

英文题目&#xff1a;SimCSE: Simple Contrastive Learning of Sentence Embeddings 中文题目&#xff1a;SimSCE&#xff1a;用简单的对比学习提升句嵌入的质量 论文地址&#xff1a;https://export.arxiv.org/pdf/2104.08821.pdf 领域&#xff1a;自然语言处理&#xff0c;对…

Redis的基本使用

1.Redis简介 &#xff08;1&#xff09;什么是Redis ①Redis是一个基于内存的key-value结构数据库 ②基于内存存储&#xff0c;读写性能高 ③适合存储热点数据(热点商品、资讯、新闻) ④Redis是一个开源的内存中的数据结构存储系统&#xff0c;它可以用作&#xff1a;数据库、…

计组--存储系统

存储系统 思维导图&#xff1a; 存储器概述 存储器的分类 按在计算机中的作用(层次)分类 主存储器&#xff0c;简称主存(内存) 存放计算机运行期间所需的程序和数据&#xff0c;CPU可以直接对其进行访问。 辅助存储器&#xff0c;简称辅存(外存) 辅存的内容需要调入主存后才…

普中A6开发版——XPT2046四引脚切换测量(含详细教程以及原理图等资料)

文章目录一、简介二、原理图以及手册三、接线四、选择数码管芯片原理讲解五、代码一、简介 本文介绍了XPT2046的使用方法以及普中A6开发版的接线等&#xff0c;并从原理图以及手册中摘选了详细的介绍&#xff0c;充分理解其工作原理。XPT2046本来是一个电阻式触摸屏控制器&…

监控系统架构方案

前言 对于企业级服务器管理&#xff0c;站群管理&#xff0c;针对服务器的监控是非常必要的。 通常&#xff0c;在电脑出现卡死&#xff0c;或进程停止或被挂起的情况下&#xff0c;大家都会使用任务管理器查看进程情况。针对电脑流畅性或资源优化&#xff0c;通常会使用资源管…

物联网开发笔记(19)- 使用Micropython开发ESP32开发板之连接WIFI热点

我们的ESP32开发板是拥有WIFI和蓝牙功能的。这里我们先告诉大家如何将ESP32开发板连接到我们家里的无线路由器上&#xff0c;并和连接到家里无线路由器的一台电脑进行通讯。 一、环境 ESP32开发板Thonny IDEWin10网络调试助手工具 后面设备联网的基本信息&#xff1a;开发板IP…

网课答案查题方法详细步骤

网课答案查题方法详细步骤 本平台优点&#xff1a; 多题库查题、独立后台、响应速度快、全网平台可查、功能最全&#xff01; 1.想要给自己的公众号获得查题接口&#xff0c;只需要两步&#xff01; 2.题库&#xff1a; 题库&#xff1a;题库后台&#xff08;点击跳转&#…

Dobbo微服务项目实战(详细介绍+案例源码) - 1.项目介绍及环境配置

系列文章目录 项目介绍及环境配置 文章目录系列文章目录一、项目介绍1. 功能2. 技术选型3. 页面预览⑴. 登录⑵. 交友&#xff08;主页&#xff09;⑶. 探花⑷. 搜附件⑸. 桃花传音⑹. 测灵魂⑺. 圈子⑻. 消息⑼. 小视频⑽. 我的二、开发工具1. YAPI2. Android模拟器3. 调试工…

ElasticSearch 命令总结

目录0&#xff0c;ES 与关系型数据库类比1&#xff0c;查看集群信息2&#xff0c;查看索引信息3&#xff0c;创建索引1&#xff0c;创建索引2&#xff0c;重建索引4&#xff0c;文档相关操作1&#xff0c;查看文档2&#xff0c;写入文档3&#xff0c;更新文档4&#xff0c;删除…

上海亚商投顾:A股持续调整 券商成做空主力

上海亚商投顾前言&#xff1a;无惧大盘大跌&#xff0c;解密龙虎榜资金&#xff0c;跟踪一线游资和机构资金动向&#xff0c;识别短期热点和强势个股。 市场情绪三大指数今日低开低走&#xff0c;午后均跌超2%&#xff0c;证券、房地产、煤炭等板块跌幅居前。券商股全线下挫&am…

centos8升级宝塔导致的openssl系列问题

故事的发生是这样的&#xff0c;从前有座山 这个问题很古怪&#xff0c;起先是我把宝塔面板从7.9.3升级到7.9.4&#xff0c;结果升级后宝塔弹出 libk5crypto.so.3: undefined symbol: EVP_KDF_ctrl, version OPENSSL_1_1_1b 再后来就是重启的话&#xff0c;连ssh都进不去&…

第137篇 荷兰拍卖

介绍荷兰拍卖,并通过简化版Azuki荷兰拍卖代码,讲解如何通过荷兰拍卖发售 ERC721标准的NFT。 1.荷兰拍卖 荷兰拍卖(Dutch Auction)是一种特殊的拍卖形式。 亦称“减价拍卖”,它是指拍卖标的的竞价由高到低依次递减直到第一个竞买人应价(达到或超过底价)时击槌成交的一种…

05-Java面向对象

文章目录初识面向对象面向过程&面向对象回顾方法及加深对象的创建分析创建与初始化对象构造器详解构造器-无参&#xff08;默认&#xff09;构造器-有参创建对象内存分析(简易)面向对象的三大特征封装封装的作用封装演示继承继承示例SuperSuper注意点super VS this方法重写…

Linux 虚拟地址空间

目录 1、一段代码引出一个问题 运行结果&#xff1a; 讨论&#xff1a; 2、Linux下进程虚拟地址空间分布 3、什么是虚拟地址空间&#xff1f; 4、虚拟地址出现之前&#xff1a;进程直接访问物理内存 5、再述虚拟地址空间 虚拟地址空间结构体是如何进行区域划分的呢&…

HTTP1.x协议详解和HTTP2.0笔记

http协议的作用就是指定两个web应用&#xff0c;之间的一种规则&#xff0c;各种特点&#xff0c;管道化&#xff0c;io多路复用&#xff0c;缓存&#xff0c;状态码&#xff0c;都是基于协议之间的字段&#xff0c;和io之间的调度来实现 HTTP的诞生 1989 年 3 月 CERN&#x…