ES常见查询总结

目录

  • 1:查询总数
  • 2:查询所有数据
  • 3:查询指定条数
  • 4:根据ID查询
  • 5:一个查询字符串搜索
  • 6:match搜索
  • 7:term搜索
  • 8:bool搜索
  • 9:must多条件匹配查询
  • 10:Should满足一个条件查询
  • 11: must_not必须不匹配查询
  • 12:多个字段查询内容
  • 13:一个字段查询多个内容
  • 14:通配符和正则匹配
  • 15:前缀查询
  • 16:短语匹配
  • 17:范围查询
  • 18:字段存在查询

1:查询总数

GET demo_person/_count
{ "query": {"match_all": {}}
}

上述用sql表示:

SELECT COUNT(*) FROM demo_person

2:查询所有数据

GET demo_person/_search
{  "query": {"match_all": {}}
}

上述用sql表示:

SELECT * FROM demo_person

3:查询指定条数

GET demo_person/_search
{  "size": 20, "query": {"match_all": {}}
}

上述用sql表示:

SELECT * FROM demo_person LIMIT 20

4:根据ID查询

GET /demo_person/_doc/1?pretty

上述用sql表示:

SELECT * FROM demo_person WHERE _id = '1'

5:一个查询字符串搜索

GET /demo_person/_search?q=last_name:Smith

上述用sql表示:

SELECT * FROM demo_person WHERE last_name = 'Smith'

6:match搜索

这是一个 Elasticsearch 查询语句,用于在索引为 demo_person 中查询 last_name 字段包含 “Smith” 的文档,
特点先分词,再拿词去匹配倒排索引

GET /demo_person/_search
{"query" : {"match" : {"last_name" : "Smith"}}
}

上述用sql表示:

SELECT * FROM demo_person WHERE last_name ='Smith'

7:term搜索

这是一个 Elasticsearch 查询语句,用于在索引为 demo_person 中查询 last_name 字段精确匹配值为 “Smith” 的文档。term:不分词直接匹配词条

GET /demo_person/_search
{"query": {"term": {"last_name": {"value": "Smith"}}}
}

上述用sql表示:

SELECT * FROM demo_person WHERE last_name = 'Smith'

8:bool搜索

这是一个 Elasticsearch 查询语句,用于在索引为 demo_person 中查询 last_name 字段包含 “Smith” 且 age 大于等于 30 的文档。
must: 完全匹配条件 相当于sql中的and
should: 至少满足一个条件 相当于sql中的 or
must_not: 文档必须不匹配条件 相当于sql中的!=

GET /demo_person/_search
{"query": {"bool": {"must": [{"match": {"last_name": "Smith"}}],"filter": [{"range": {"age": {"gte": 30}}}]}}
}

上述用sql表示:

SELECT * FROM demo_person WHERE last_name = 'Smith' AND age >= 30

9:must多条件匹配查询

这是一个 Elasticsearch 查询语句,用于在索引为 demo_person 中查询 last_name 字段包含 “Smith” 且 age 等于 32 的文档。

GET /demo_person/_search
{"query": {"bool": {"must": [{"match": {"last_name": "Smith"}},{"match": {"age": 32}}]}}
}

上述用sql表示:

SELECT * FROM demo_person WHERE last_name = 'Smith' AND age = 32

10:Should满足一个条件查询

这是一个 Elasticsearch 查询语句,用于在索引为 demo_person 中查询 last_name 字段包含 “Fir” 或 age 等于 32 的文档。

GET /demo_person/_search
{"query": {"bool": {"should": [{"match": {"last_name": "Fir"}},{"match": {"age": 32}}]}}
}

上述用sql表示:

SELECT * FROM demo_person WHERE last_name = 'Fir' OR age = 32

11: must_not必须不匹配查询

这是一个 Elasticsearch 查询语句,用于在索引为 demo_person 中查询 last_name 字段不包含 “Fir” 且 age 不等于 32 的文档

GET /demo_person/_search
{"query": {"bool": {"must_not": [{"match": {"last_name": "Fir"}},{"match": {"age": 32}}]}}
}

上述用sql表示:

SELECT * FROM demo_person WHERE last_name != 'Fir' AND age != 32

12:多个字段查询内容

这是一个 Elasticsearch 查询语句,用于在索引为 demo_person 中查询 last_name 和 about 字段包含 “collect” 或 “rock” 的文档。

GET /demo_person/_search
{"query": {"multi_match": {"query": "collect rock","fields": ["last_name","about"]}}
}

上述用sql表示:

SELECT * FROM demo_person WHERE last_name LIKE '%collect%' OR about LIKE '%collect%' OR last_name LIKE '%rock%' OR about LIKE '%rock%'

13:一个字段查询多个内容

GET /demo_person/_search
{"query": {"terms": {"about": ["rock","hehe"	]}}	
}

上述用sql表示:

SELECT * FROM demo_person WHERE about IN ('rock', 'hehe')

14:通配符和正则匹配

GET /demo_person/_search
{"query": {"bool": {"filter": [{"wildcard":{"last_name":"*mi*"}}]}}
}

上述用sql表示:

SELECT * FROM demo_person WHERE last_name LIKE '%mi%'

15:前缀查询

GET /demo_person/_search
{"query": {"prefix": {"last_name": {"value": "Smi"}}}
}

上述用sql表示:

SELECT * FROM demo_person WHERE last_name LIKE 'Smi%'

16:短语匹配

这是一个 Elasticsearch 查询语句,用于在索引为 demo_person 中查询 about 字段包含短语 “rock climbing” 的文档。

GET /demo_person/_search
{"query" : {"match_phrase" : {"about" : "rock climbing"}}
}

上述用sql表示:

SELECT * FROM demo_person WHERE about LIKE '%rock climbing%'

17:范围查询

GET demo_person/_search
{  "query": {"range": {"age": {"gte": 30,"lt": 35}}}
}

上述用sql表示:

SELECT * FROM demo_person WHERE age >= 30 AND age < 35

18:字段存在查询

GET /demo_person/_search
{"query": {"exists": {"field": "age"}}
}

上述用sql表示:

SELECT * FROM demo_person WHERE age IS NOT NULL

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

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

相关文章

VRRP(虚拟路由冗余协议)

一.VRRP简介 1.VRRP是什么 Virtual route Redundancy Protocol&#xff0c;也叫虚拟路由器冗余协议。 利用VRRP&#xff0c;一组路由器协同工作&#xff0c;单只有一个处于Master状态&#xff0c;处于该状态的路由器&#xff08;的接口&#xff09;承担实际的数据流量转发任…

微信小程序uniapp记住密码

记住密码功能 在请求登录接口成功后&#xff0c;我们需要判断用户是否勾选记住密码&#xff0c;如果是&#xff0c;则将记住密码状态、账号信息存入本地。 下次登录时&#xff0c;获取本地的记住密码状态&#xff0c;如果为true则获取本地存储的账号信息&#xff0c;将信息回填…

循环验证表单信息

1.需求 要求在提交申请时校验每个地址使用信息的必填项是否填写完整 2.最终效果 3.具体操作 <el-dialog v-model"data.applyVisible" title"申请地址" center destroy-on-close><el-button type"primary" click"handleTabsAdd&…

【docker】docker入门与安装

Docker 一、入门 Docker的主要目标是&#xff1a;Build, Ship and Run Any App, Anywhere&#xff0c;也就是通过对应用组件的封装、分发、部署、运行等生命周期的管理&#xff0c;使用户的APP及其运行环境能做到一次镜像,处处运行。 Docker运行速度快的原因 Docker有比虚拟…

图论专栏一《图的基础知识》

图论&#xff08;Graph Theory&#xff09;是数学的一个分支。它以图为研究对象。图论中的图是由若干给定的点及连接两点的线所构成的图形&#xff0c;这种图形通常用来描述某些实体之间的某种特定关系&#xff0c;用点代表实体&#xff0c;用连接两点的线表示两个实体间具有的…

实验06:VLAN配置

1.实验目的&#xff1a; VLAN&#xff08;Virtual Local Area Network&#xff09;是一种通过逻辑方式而不是物理方式划分局域网的技术&#xff0c;可以提高网络性能、安全性和管理效率。VLAN的划分方法有基于端口、基于MAC地址、基于协议和基于IP组播等。VLAN之间的通信需要路…

Oracle数据库本地部署结合内网穿透实现公网环境PLSQL远程访问

文章目录 前言1. 数据库搭建2. 内网穿透2.1 安装cpolar内网穿透2.2 创建隧道映射 3. 公网远程访问4. 配置固定TCP端口地址4.1 保留一个固定的公网TCP端口地址4.2 配置固定公网TCP端口地址4.3 测试使用固定TCP端口地址远程Oracle 前言 Oracle&#xff0c;是甲骨文公司的一款关系…

什么是纯净IP?如何判断IP地址的纯净度?有哪些干净IP推荐?

您是否想知道什么使代理“干净”或如何确保您的代理不会将您列入网站的黑名单&#xff1f;对于通过代理访问网络的人来说&#xff0c;干净的代理是无缝在线体验的重要组成部分。在这篇文章中&#xff0c;我们将深入研究干净代理的世界&#xff0c;并探讨决定其质量的因素。 一、…

SiteGround SITE TOOLS主机站点工具设置教程

当你使用SiteGround搭建WordPress或WooCommerce网站后&#xff0c;你会经常登录到两个不同的网站后台&#xff1a;一个是SiteGround的Site Tools后台&#xff0c;用于进行网站的安全、速度优化、FTP工具和网站备份等技术操作&#xff1b;另一个是WordPress网站后台&#xff0c;…

Redis—SpringDataRedis

与其明天开始&#xff0c;不如现在行动&#xff01; 文章目录 SpringDataRedisRedisTemplate方案一方案二 &#x1f48e;总结 SpringDataRedis SpringData是Spring中数据操作的模块&#xff0c;包含对各种数据库的集成&#xff0c;其中对Redis的集成模块就叫做SpringDataRedis…

C# 字符串格式化

写在前面 在日常编程中&#xff0c;经常需要对字符串进行格式化操作&#xff0c;以便呈现为不同的格式&#xff0c;满足各种各样的显示需求&#xff0c;C#的字符串格式化参数是非常丰富的&#xff0c;这里做个简单的列举&#xff0c;以供后续参考和延伸。 代码实现 var curr…

vite+vue3+electron搭建项目

编辑器使用vscode&#xff0c;打开一个空文件夹 第一步 初始化vite项目 初始化vite项目&#xff0c;命令 npm init vite 第二步 下载依赖 进入新建的项目&#xff0c;下载依赖&#xff0c;命令 cd vite-projec npm i第三步 使用cnpm下载 electron依赖 新建一个终端&#…

HTTP 408错误:请求超时,如何避免

大家好&#xff0c;今天我们来聊聊一个常见的问题——HTTP 408错误&#xff0c;也就是请求超时。这个错误就像是一个网络中的时间旅行者&#xff0c;总是不期而至&#xff0c;让人摸不着头脑。但是别担心&#xff0c;我有一些方法可以帮助你避免这个错误。 首先&#xff0c;我…

Python的模块与包

前言 当你编写Python程序时&#xff0c;你经常会引入别人编写好的模块。有的模块是Python自带的&#xff0c;你无需安装就能直接引用&#xff0c;而有的模块则是由Python生态系统里的第三方工程师提供的&#xff0c;你需要通过pip安装之后&#xff0c;才能进行使用。由…

Electron 跨平台打包

最近利用 Electron 制作跨平台安装包&#xff0c;记录步骤&#xff0c;踩坑多多。 首先&#xff0c;一步步搭建项目 一、搭建环境 初始化 package.json&#xff0c;这里要求 node 版本不低于14.16&#xff0c;我用的 v14.16.0&#xff0c;16版本在 Linux 下容易出现安装依赖…

js传递json数据过大的解决方案

protobufjs 使用protobuf&#xff0c;定义如下结构 Person.protobuf syntax "proto3";message Person {string name 1;int32 age 2; }Person.thrift namespace java com.example.Personstruct Person {1: required string name,2: required i32 age }使用bench…

教师考编需要什么条件

教师考编&#xff0c;了解考编需要什么条件是非常重要的。接下来&#xff0c;我来介绍几点教师考编的条件。 需要具备相应的学历背景。一般来说&#xff0c;考编需要具备本科或以上学历&#xff0c;并且所学专业与所报考的岗位相关。在某些特殊情况下&#xff0c;如报考幼儿园教…

【C语言(十一)】

C语言内存函数 一、memcpy使用和模拟实现 void * memcpy ( void * destination, const void * source, size_t num ); • 函数memcpy从source的位置开始向后复制num个字节的数据到destination指向的内存位置。 • 这个函数在遇到 \0 的时候并不会停下来。 • 如果sourc…

什么是OPcache?它对性能有什么影响?

OPcache&#xff08;Opcode Cache&#xff09;是 PHP 的一个内置扩展&#xff0c;用于缓存 PHP 脚本的解释代码&#xff08;opcode&#xff09;&#xff0c;从而提高 PHP 应用程序的性能。当 PHP 脚本首次被解释执行时&#xff0c;PHP 将脚本编译成一组中间代码&#xff08;opc…

Spark Paimon 中为什么我指定的分区没有下推

背景 最近在使用 Paimon 的时候遇到了一件很有意思的事情&#xff0c;写的 SQL 居然读取的数据不下推&#xff0c;明明是分区表&#xff0c;但是却全量扫描了。 目前使用的版本信息如下: Spark 3.5.0 Paimon 0.6.0 paimon的建表语句如下&#xff1a; CREATE TABLE table_demo…