Elastic Stack--ES的DSL语句查询

2024-09-06 08:12
文章标签 es 查询 stack 语句 elastic dsl

本文主要是介绍Elastic Stack--ES的DSL语句查询,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

前言:本博客仅作记录学习使用,部分图片出自网络,如有侵犯您的权益,请联系删除

学习B站博主教程笔记: 

最新版适合自学的ElasticStack全套视频(Elk零基础入门到精通教程)Linux运维必备—ElasticSearch+Logstash+Kibana精讲_哔哩哔哩_bilibiliicon-default.png?t=O83Ahttps://www.bilibili.com/video/BV1VMW3e6Ezk/?spm_id_from=333.1007.tianma.1-1-1.click&vd_source=e539f90574cdb0bc2bc30a8b5cb3fc00

1、什么是DSL

Elasticsearch提供了基于JSON的完整Query DSL(Domain Specific Language,领域特定语言)来定义查询。

2、全文检索-match查询

 # 查询品牌是"小苹华"的所有商品。背后的逻辑是会对中文进行分词POST http://192.168.1.0:9200/cluster-shopping/_search{"query":{"match":{"brand":"小苹华"}}}

3、完全匹配-match_phrase查询

 # 查询品牌是"小苹华"的所有商品。背后的逻辑是不会对中文进行分词!!!POST http://192.168.1.0:9200/cluster-shopping/_search{"query":{"match_phrase":{"brand":"小苹华"}}}

4、全量查询-match_all

 # 请求体内容可以不写,默认就是发起了全量查询(match_all)POST http://192.168.1.0:9200/cluster-shopping/_search{"query":{"match_all":{}}}

5、分页查询-size-from

 POST http://192.168.1.0:9200/cluster-shopping/_search{"query":{"match_all":{}},"siez": 7,"from": 28}# size:每页显示多少条数据,默认值为10# from:指定跳过数据偏移量的大小,默认值为10,即默认看第一页。查询指定页码的from值="(页码-1)*每页数据大小(size)"

6、查看"_source"对象的指定字段

 POST http://192.168.1.0:9200/cluster-shopping/_search{"query":{"match_all":{}},"siez": 7,"from": 28"_source":["brand","price"]}

7、查询包含指定字段的文档-exists

exists:判断某个字段是否存在,若存在则返回该文档,若不存在,则不返回文档

 POST http://192.168.1.0:9200/cluster-shopping/_search{"query":{"exists":{"field": "hobby"}}}

8、语法高亮-highlight

 POST http://192.168.1.0:9200/cluster-shopping/_search{"query":{"match":{"brand": "苹果"}},"highlight":{"pre_tags": ["<h1>"],       "post_tags": ["</h1>"]"fileds":{"brand":{}}}}# highlight:设置高亮# fields:指定对哪个字段进行语法高亮# pre_tags:自定义高亮的前缀标签# post_tags:自定义高亮的后缀标签

9、基于字段进行排序-sort

 POST http://192.168.1.0:9200/cluster-shopping/_search{"query":{"match":{"brand": "苹果"}},"sort":{"price":{"order":"asc"}}}# sort:基于指定的字段进行排序# order:指定排序的规则,分为"asc"(升序)和"desc"(降序)

10、多条件查询-bool

 POST http://192.168.1.0:9200/cluster-shopping/_search{"query":{"bool":{"must":{{"match_phrase":{"brand":"苹果"}},{"match": 5499}}}}}# bool:可以匹配多个条件查询;其中有"must","must_not","should"

11、范围查询-range

 POST http://192.168.1.0:9200/cluster-shopping/_search{"query":{"bool":{"must":{{"match_phrase":"苹果"}}   },"filter":{"range":{"price":{"gt": 5000,"lt": 8000}}}}}# filter:过滤数据# range:基于范围进行过滤,此处为基于的是"price"进行过滤;

12、精确匹配查询-terms

 POST http://192.168.1.0:9200/cluster-shopping/_search{"query":{"terms":{"price": [4699,299,4066]}}}

致谢

在此,我要对所有为知识共享做出贡献的个人和机构表示最深切的感谢。同时也感谢每一位花时间阅读这篇文章的读者,如果文章中有任何错误,欢迎留言指正。 

学习永无止境,让我们共同进步!!

这篇关于Elastic Stack--ES的DSL语句查询的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1141477

相关文章

MyBatis模糊查询报错:ParserException: not supported.pos 问题解决

《MyBatis模糊查询报错:ParserException:notsupported.pos问题解决》本文主要介绍了MyBatis模糊查询报错:ParserException:notsuppo... 目录问题描述问题根源错误SQL解析逻辑深层原因分析三种解决方案方案一:使用CONCAT函数(推荐)方案二:

MySQL 中的 JSON 查询案例详解

《MySQL中的JSON查询案例详解》:本文主要介绍MySQL的JSON查询的相关知识,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧... 目录mysql 的 jsON 路径格式基本结构路径组件详解特殊语法元素实际示例简单路径复杂路径简写操作符注意MySQL 的 J

Go语言开发实现查询IP信息的MCP服务器

《Go语言开发实现查询IP信息的MCP服务器》随着MCP的快速普及和广泛应用,MCP服务器也层出不穷,本文将详细介绍如何在Go语言中使用go-mcp库来开发一个查询IP信息的MCP... 目录前言mcp-ip-geo 服务器目录结构说明查询 IP 信息功能实现工具实现工具管理查询单个 IP 信息工具的实现服

MySQL索引的优化之LIKE模糊查询功能实现

《MySQL索引的优化之LIKE模糊查询功能实现》:本文主要介绍MySQL索引的优化之LIKE模糊查询功能实现,本文通过示例代码给大家介绍的非常详细,感兴趣的朋友一起看看吧... 目录一、前缀匹配优化二、后缀匹配优化三、中间匹配优化四、覆盖索引优化五、减少查询范围六、避免通配符开头七、使用外部搜索引擎八、分

C++使用printf语句实现进制转换的示例代码

《C++使用printf语句实现进制转换的示例代码》在C语言中,printf函数可以直接实现部分进制转换功能,通过格式说明符(formatspecifier)快速输出不同进制的数值,下面给大家分享C+... 目录一、printf 原生支持的进制转换1. 十进制、八进制、十六进制转换2. 显示进制前缀3. 指

SQL表间关联查询实例详解

《SQL表间关联查询实例详解》本文主要讲解SQL语句中常用的表间关联查询方式,包括:左连接(leftjoin)、右连接(rightjoin)、全连接(fulljoin)、内连接(innerjoin)、... 目录简介样例准备左外连接右外连接全外连接内连接交叉连接自然连接简介本文主要讲解SQL语句中常用的表

MySQL 中的 LIMIT 语句及基本用法

《MySQL中的LIMIT语句及基本用法》LIMIT语句用于限制查询返回的行数,常用于分页查询或取部分数据,提高查询效率,:本文主要介绍MySQL中的LIMIT语句,需要的朋友可以参考下... 目录mysql 中的 LIMIT 语句1. LIMIT 语法2. LIMIT 基本用法(1) 获取前 N 行数据(

MySQL高级查询之JOIN、子查询、窗口函数实际案例

《MySQL高级查询之JOIN、子查询、窗口函数实际案例》:本文主要介绍MySQL高级查询之JOIN、子查询、窗口函数实际案例的相关资料,JOIN用于多表关联查询,子查询用于数据筛选和过滤,窗口函... 目录前言1. JOIN(连接查询)1.1 内连接(INNER JOIN)1.2 左连接(LEFT JOI

MySQL 中查询 VARCHAR 类型 JSON 数据的问题记录

《MySQL中查询VARCHAR类型JSON数据的问题记录》在数据库设计中,有时我们会将JSON数据存储在VARCHAR或TEXT类型字段中,本文将详细介绍如何在MySQL中有效查询存储为V... 目录一、问题背景二、mysql jsON 函数2.1 常用 JSON 函数三、查询示例3.1 基本查询3.2

MySQL中动态生成SQL语句去掉所有字段的空格的操作方法

《MySQL中动态生成SQL语句去掉所有字段的空格的操作方法》在数据库管理过程中,我们常常会遇到需要对表中字段进行清洗和整理的情况,本文将详细介绍如何在MySQL中动态生成SQL语句来去掉所有字段的空... 目录在mysql中动态生成SQL语句去掉所有字段的空格准备工作原理分析动态生成SQL语句在MySQL