ES里面常用的查询语句有哪些?

【编程电子书大全】链接: https://pan.baidu.com/s/1yhPJ9LmS_z5TdgIgxs9NvQ?pwd=yyds > 提取码: yyds

Elasticsearch(ES)中常用的查询语句包括以下几类:

1. Match 查询

用于全文搜索,匹配指定字段中的文本。

GET /index_name/_search
{"query": {"match": {"field": "value"}}
}

2. Term 查询

用于精确匹配,不会进行分词。

GET /index_name/_search
{"query": {"term": {"field": "value"}}
}

3. Range 查询

用于范围查询,如日期、数字范围。

GET /index_name/_search
{"query": {"range": {"field": {"gte": "value1","lte": "value2"}}}
}

4. Bool 查询

用于组合多个查询条件,可以包含 mustshouldmust_notfilter 子句。

GET /index_name/_search
{"query": {"bool": {"must": [{ "match": { "field1": "value1" } }],"filter": [{ "term": { "field2": "value2" } }],"must_not": [{ "term": { "field3": "value3" } }],"should": [{ "match": { "field4": "value4" } }]}}
}

5. Match Phrase 查询

用于短语匹配,要求完全匹配短语中的词序。

GET /index_name/_search
{"query": {"match_phrase": {"field": "exact phrase"}}
}

6. Multi-Match 查询

在多个字段上进行匹配。

GET /index_name/_search
{"query": {"multi_match": {"query": "value","fields": ["field1", "field2"]}}
}

7. Wildcard 查询

用于通配符查询,支持 *? 通配符。

GET /index_name/_search
{"query": {"wildcard": {"field": "val*"}}
}

8. Exists 查询

用于检查文档中是否存在某个字段。

GET /index_name/_search
{"query": {"exists": {"field": "field_name"}}
}

9. Aggregation 查询

用于统计和聚合分析。

GET /index_name/_search
{"aggs": {"aggregation_name": {"terms": {"field": "field_name"}}}
}

这些查询语句涵盖了大多数常见的 Elasticsearch 查询需求,根据具体应用场景可以组合使用以实现复杂的查询逻辑。

其中Bool的四种子句的含义如下

在 Elasticsearch 中,bool 查询用于将多个查询子句组合在一起。它包含四种不同的子句,每种子句的作用和使用场景不同:

1. must

  • 作用:必须匹配的条件,类似于逻辑上的 AND。
  • 特性:文档必须满足 must 子句中的所有条件才能被返回。
  • 示例
    "must": [{ "match": { "field1": "value1" } },{ "term": { "field2": "value2" } }
    ]
    

2. should

  • 作用:可选匹配的条件,类似于逻辑上的 OR。
  • 特性:如果有一个或多个 should 子句,则文档满足其中任意一个条件即可被返回。如果没有 must 子句,至少一个 should 条件必须匹配才能返回文档。
  • 示例
    "should": [{ "match": { "field3": "value3" } },{ "term": { "field4": "value4" } }
    ]
    

3. must_not

  • 作用:必须不匹配的条件,类似于逻辑上的 NOT。
  • 特性:文档不能满足 must_not 子句中的任何一个条件,否则不会被返回。
  • 示例
    "must_not": [{ "match": { "field5": "value5" } },{ "term": { "field6": "value6" } }
    ]
    

4. filter

  • 作用:过滤条件,不影响评分。
  • 特性:文档必须满足 filter 子句中的所有条件,但这些条件不会影响文档的相关性评分,因此性能较高。
  • 示例
    "filter": [{ "term": { "field7": "value7" } },{ "range": { "field8": { "gte": 10, "lte": 20 } } }
    ]
    

综合示例

GET /index_name/_search
{"query": {"bool": {"must": [{ "match": { "title": "Elasticsearch" } }],"should": [{ "match": { "tags": "search" } },{ "match": { "tags": "analytics" } }],"must_not": [{ "term": { "status": "deprecated" } }],"filter": [{ "term": { "author": "john_doe" } },{ "range": { "publish_date": { "gte": "2020-01-01" } } }]}}
}

在这个例子中,查询的意思是:

  • 文档必须包含 title 字段匹配 “Elasticsearch”。
  • 文档可以包含 tags 字段匹配 “search” 或 “analytics”。
  • 文档不能包含 status 字段为 “deprecated”。
  • 文档必须包含 author 字段为 “john_doe” 且 publish_date 字段在 2020-01-01 之后。

通过这种方式,可以灵活组合不同的条件来构建复杂的查询逻辑。

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

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

相关文章

PLC网关:开启工业4.0时代的智能工厂之路

PLC即可编程逻辑控制器,是工业自动化领域的核心设备,广泛应用于各个工业领域。从PLC问世至今,一直表现出强大的生命力和高速增长态势,2020年全球PLC市场的销售量已经达到了百亿RMB级别。 随着行业智能化、数字化推广,…

【Vulnhub系列】Vulnhub_Seattle_003靶场渗透(原创)

【Vulnhub系列靶场】Vulnhub_Seattle_003靶场渗透 原文转载已经过授权 原文链接:Lusen的小窝 - 学无止尽,不进则退 (lusensec.github.io) 一、环境准备 1、从百度网盘下载对应靶机的.ova镜像 2、在VM中选择【打开】该.ova 3、选择存储路径&#xff0…

Nginx系列-12 Nginx使用Lua脚本进行JWT校验

背景 本文介绍Nginx中Lua模块使用方式,并结合案例进行介绍。案例介绍通过lua脚本提取HTTP请求头中的token字段,经过JWT校验并提取id和name信息,设置到http请求头中发向后段服务器。 默认情况下,Nginx自身不携带lua模块&#xff0…

Computer Analysis and Visualisation CITS2401

1. Outline In this project, we will continue from our Project 1 where we implemented a malicious credit card transaction detection system. But instead of iuww520iuww520​​​​​​​iuww520​​​​​​​iuww520​​​​​​​iuww520​​​​​​​iuww520​…

什么是海外云手机?海外云手机有什么用?

在跨境电商的浪潮中,如何高效引流成为了卖家们关注的焦点。近期,越来越多的卖家开始借助海外云手机,通过TikTok平台吸引流量,从而推动商品的海外销售。那么,究竟什么是海外云手机?海外云手机又能为跨境电商…

存储过程

1、概念 完成特定功能的sql语句的集合。把定义好的sql集合在一个特定的sql函数当中,每次执行调用函数即可,还可以实现传参的调用 2、作用 执行速度比sql语句执行速度更快,执行效率也更高 客户端可以随时调用发放,也可以随时修…

商家转账到零钱保姆级申请教程

大多数商家在申请微信支付的“商家转账到零钱”过程中都免不了遇到问题,更有不少商家因为屡次驳回严重耽误项目工期。为了帮助商户顺利开通该接口,根据我们上万次成功开通的经验整理这篇攻略以供参考: 一、前期准备 1. 确认主体资格&#xf…

跨境电商独立站术语盘点(一)独立站建站篇

跨境新手总是被一些跨境专业术语弄得头晕脑胀,不懂得查,查了又忘,忘了又得继续查…… 本期【跨境干货】,笔者特地为大家整理汇总了跨境电商独立站常用网站建站方面的专业术语,帮助你了解建站相关知识!赶紧收…

安装python插件命令集合

安装python插件pyecharts库 pip install pyecharts -i https://pypi.tuna.tsinghua.edu.cn/simple 安装python插件pandas库 pip install pandas -i https://pypi.tuna.tsinghua.edu.cn/simple PyCharm 中安装步骤:

数据结构之队列详解

1.队列的概念以及结构 队列:只允许在一端进行插入数据操作,在另一端进行删除数据操作的特殊线性表,队列具有先进先出FIFo(Frist in Frist out)的特性 入队列:进行插入才操作的一端称为队尾 出队列:进行删除操作的一…

谷粒商城实战笔记-编码经验积累

文章目录 1. 先理解需求,后写代码惨痛经历教训 2. 前后端都要校验惨痛经历教训 3,避免使用JOIN查询以提高性能4,用常量类代替魔法数字 1. 先理解需求,后写代码 惨痛经历 几年前,我所在的团队负责为开发一个在线预订系…

1比25万基础电子地图(广西版)

我们为你分享过四川、云南、江西、贵州、重庆、青海、西藏、新疆、甘肃、黑龙江、吉林、湖北、广东和内蒙古的1比25万基础电子地图,现在再为你分享广西版的电子地图。 如果你需要这些省份的1比25万基础电子地图,请在文末查看该数据的领取方法。 1比25万…

flutter开发实战-go_router使用

flutter开发实战-go_router使用 一、go_router介绍与特性 go_router是一个Flutter的第三方声明式路由插件,使用路由器API提供一个方便的、基于url的API,用于在不同屏幕之间导航。可以定义URL模式、使用URL导航、处理深度链接以及许多其他与导航相关的场…

【Spring Boot】Spring 的安全框架:Spring Security

Spring 的安全框架:Spring Security 1.Spring Security 初识1.1 核心概念1.2 认证和授权1.2.1 验证(authentication)1.2.2 授权(authorization) 1.3 模块 2.核心类2.1 Securitycontext2.2 SecurityContextHolder2.2.1 …

day51|99.岛屿数量, 100.岛屿的最大面积

99.岛屿数量 99. 岛屿数量 (kamacoder.com) DFS 思路没问题&#xff0c;内存超限了。 #include<iostream> #include<vector>using namespace std;int times 0;inline bool valid(int i, int j, const int &m, const int &n){return i > 0 &&am…

Python字符串处理技巧:一个小技巧竟然能省下你一半时间!

获取Pyhon及副业知识&#xff0c;关注公众号【软件测试圈】 效率翻倍的秘密&#xff1a;Python字符串操作的5个惊人技巧 在Python编程中&#xff0c;字符串处理在数据分析、Web开发、自动化脚本等多个领域都有广泛应用。Python提供了一系列强大的字符串处理函数&#xff0c;能够…

如何从零搭建一个动态网站

静态网站和动态网站的区别 静态网站和动态网站的本质区别在于内容是否在服务器端动态生成&#xff0c;以及是否有服务器端逻 辑处理用户请求和数据。 静态网站像是一本已经印刷好的书籍&#xff0c;而动态网站则像是根据读者需求即时编写和提供内容 的智能机器。 创建动态网…

前端工程化11-webpack常见插件

1、webpack的插件Plugin 刚才我们也讲解了下&#xff0c;我们对webpack路径的一个处理&#xff0c;处理的话包括别名的配置&#xff0c;模块是如何找到并加载的&#xff0c;总的来说到现在webpack这个配置到现在来说还是相当的麻烦的&#xff0c;但是目前来说我们讲的这些东西…

ssl证书过期,nginx更换证书以后仍然显示过期证书

记一次nginx部署异常 今天提示ssl证书过期了&#xff0c;然后重新申请了一个证书 反反复复折腾了一个上午&#xff0c;还更换了好几个平台&#xff0c;发现怎么更换都没用&#xff0c;百度上的解决方法都试过了&#xff0c;发现都没用&#xff0c;证书还是显示的原来那一个&…

前端工程化-vue项目创建

可以使用html、css、javascpript ,以及使用vue、axios等技术搭建前端页面&#xff0c;但效率低、结构乱。 实际前端开发&#xff1a; 前端工程化开发步骤&#xff1a; 一、环境准备 1.安装NodeJS2. 安装vue-cli 二、创建Vue项目 有两种方式创建&#xff0c;一般采用第二种图…