ES 数据库

ES 数据库

  • 通过 API 查询
  • 通过 JSON 查询

熟悉 es 的同学都知道 es 一般有两种查询方式

1,在 java 中构建查询对象,调用 es 提供的 api 做查询
2,使用 json 调用接口做查询

查询语句无非是将足够的信息丢给数据库,但是它却和 SQL 不一样有自己独立的查询方式

通过 API 查询

模糊查询

BoolQueryBuilder boolBuilder = QueryBuilders.boolQuery();//Elasticsearch 中文会把汉字分词,“王大”会匹配到like“王”和like“大”,要在字段后面接keyword
boolBuilder.must(QueryBuilders.wildcardQuery("userName.keyword","*王大*"));

等于、不等于

BoolQueryBuilder boolBuilder = QueryBuilders.boolQuery();
//等于  must
boolBuilder.must(QueryBuilders.termQuery("age","30"));
//不等于  mustNot
boolBuilder.mustNot(QueryBuilders.termQuery("sex","1"));

大于、小于

BoolQueryBuilder boolBuilder = QueryBuilders.boolQuery();
//大于
boolBuilder.must(QueryBuilders.rangeQuery("createTime").gt(1609430400000));
//小于
boolBuilder.must(QueryBuilders.rangeQuery("createTime").lt(1672502400000));

es 也是有层级的,下面演示 and 、or 同时使用

BoolQueryBuilder boolBuilder = QueryBuilders.boolQuery();boolBuilder.must(QueryBuilders.termQuery("a",1));QueryBuilder queryBuilder1 = QueryBuilders.boolQuery().must(QueryBuilders.termQuery("b", 2)).must(QueryBuilders.termQuery("c", 3)).mustNot(QueryBuilders.termQuery("d", 4));QueryBuilder queryBuilder2 = QueryBuilders.boolQuery().must(QueryBuilders.termQuery("e", 4)).must(QueryBuilders.termQuery("f", 5));QueryBuilder queryBuilder = QueryBuilders.boolQuery().should(queryBuilder1).should(queryBuilder2);boolBuilder.must(queryBuilder);

等同与这个 sql

select * from user where a=1 and ((b=2 and c=3 and d !=4) or (e=4 and f=5))

通过 JSON 查询

模糊查询

{"query": {"bool": {"adjust_pure_negative": true,"must": [{"wildcard": {"name": {"boost": 1.0,"wildcard": "*小李*"}}}],"boost": 1.0}}
}

等值查询,查询 name = 小李的数据

{"query": {"bool": {"adjust_pure_negative": true,"must": [{"term": {"name": {"boost": 1.0,"value": "小李"}}}],"boost": 1.0}}
}

范围查询,查询年龄大于等于18,并且小于等于50的数据

{"query": {"range": {"age": {"include_lower": true,"include_upper": true,"from": 18,"boost": 1.0,"to": 50}}}
}

多条件查询,查询姓名为小李,并且年龄在10-50之间的文档

{"query": {"bool": {"adjust_pure_negative": true,"must": [{"term": {"name": {"boost": 1.0,"value": "小李"}}},{"range": {"age": {"include_lower": true,"include_upper": true,"from": 10,"boost": 1.0,"to": 50}}}],"boost": 1.0}}
}

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

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

相关文章

5分钟内在Linux上安装.NET Core应用程序

作为开源的忠实粉丝,我喜欢 .NET Core 的跨平台特性。它开启了无限的可能性,从业余爱好项目、实验和概念验证,到在具有高安全性和可扩展性的经济高效基础设施上运行的大规模高负载生产应用程序。我通常从任何云平台提供商那里获得最简单、最便…

<C++> 模拟实现string

目录 前言 一、模拟实现string 1. 成员变量 2. 构造函数 2.1 构造函数 2.2 重载默认构造 2.3 合并 3. 析构函数 4. 拷贝构造函数 5. c_str 6. size 7. operator[ ] 7.1 普通版 7.2 const版本 8. 迭代器—iterator 8.1 普通版iterator 8.2 const版本iterator 9. 尾插 10. …

【微服务 SpringCloud】实用篇 · 服务拆分和远程调用

微服务(2) 文章目录 微服务(2)1. 服务拆分原则2. 服务拆分示例1.2.1 导入demo工程1.2.2 导入Sql语句 3. 实现远程调用案例1.3.1 案例需求:1.3.2 注册RestTemplate1.3.3 实现远程调用1.3.4 查看效果 4. 提供者与消费者 …

美创科技入选“内蒙古自治区第一届网络安全应急技术支撑单位”

近日,内蒙古自治区党委网信办、国家网络应急技术处理协调中心内蒙古分中心评选“内蒙古自治区网络安全应急技术支撑单位”结果公布。 经自治区各地区、各部门和单位推荐各单位自主申报,资料审查和专家评审等环节,美创科技成功入选“内蒙古自治…

Linux将磁盘空闲空间转移到其他目录下(home目录转移到root目录下)

目录 1、查看分区 2、备份home分区文件 (重要) 3、卸载/home 4、删除/home所在的lv 5、扩展/root所在的lv(我这里还扩展了、dev/sr0) 6、扩展/root文件系统。 7、重新创建home lv 创建时计算好剩余的磁盘容量,建…

数据预处理—滑动窗口采样数据

一个简单的例子: # data: 这是要应用滑动窗口采样的输入数据,通常是一个序列,例如列表或NumPy数组。 # window_size: 这是滑动窗口的大小,表示每个窗口中包含的元素数量。 # step_size: 这是滑动窗口移动的步长,表示每…

一个可以解决企业跨网文件交换难题的软件所具备的特性必须有哪些

在当今数字化办公的浪潮中,企业跨网文件交换成为了不可忽视的重要需求。无论是内部网络还是外部网络,都存在着各种跨网文件交换的场景,然而这一过程也面临着一系列的挑战。本文将深入探讨企业跨网文件交换的难题以及一款可以解决企业跨网文件…

vue 树状结构数据渲染 (java 处理 list ->树状)

树状结构 Element ui https://element.eleme.cn/#/zh-CN/component/tree <el-tree :data"data" :props"defaultProps" node-click"handleNodeClick"></el-tree><script>export default {data() {return {data: [{label: 一级…

云原生周刊:CNCF 宣布 Cilium 毕业 | 2023.10.16

开源项目推荐 Reloader Reloader 是一个 Kubernetes 控制器&#xff0c;用于监控 ConfigMap 和 Secrets 中的变化&#xff0c;并对 Pod 及其相关部署、StatefulSet、DaemonSet 和 DeploymentConfig 进行滚动升级&#xff01; Spegel Spegel 在瑞典语中意为镜像&#xff0c;…

有哪些手段可以优化 CSS, 提高性能

CSS优化是Web开发中提高性能和用户体验的关键部分。下面详细解释一些CSS优化的方法&#xff0c;以提高性能&#xff1a; 合并和压缩CSS文件: 合并文件&#xff1a;将多个CSS文件合并成一个&#xff0c;以减少HTTP请求次数。这可以通过构建工具&#xff08;如Webpack&#xff09…

日常中msvcp71.dll丢失怎样修复?分享5个修复方法

在 Windows 系统中&#xff0c;msvcp71.dll 是一个非常重要的动态链接库文件&#xff0c;它承载了许多应用程序和游戏的运行。如果您的系统中丢失了这个文件&#xff0c;那么您可能会遇到无法打开程序、程序崩溃或出现错误提示等问题。本文将介绍 5 个快速修复 msvcp71.dll 丢失…

flutter card 使用示例

Card组件是卡片组件&#xff0c;内容可以由列表的widget组成&#xff0c;Card组件具有阴影圆角的功能。 常用属性&#xff1a; 属性 说明 margin 外边距elevation 阴影值的深度child 子元素 import package:flutter/material.dart;void main() > runApp(MyApp());class M…

spark DStream从不同数据源采集数据(RDD 队列、文件、diy 采集器、kafka)(scala 编程)

目录 1. RDD队列 2 textFileStream 3 DIY采集器 4 kafka数据源【重点】 1. RDD队列 a、使用场景&#xff1a;测试 b、实现方式: 通过ssc.queueStream(queueOfRDDs)创建DStream&#xff0c;每一个推送这个队列的RDD&#xff0c;都会作为一个DStream处理 val sparkco…

2000-2022年上市公司CEO 高管及董事会环保背景数据(5W+ )(原始数据+处理代码Stata do文档)

2000-2022年上市公司CEO 高管及董事会环保背景数据&#xff08;5W &#xff09;&#xff08;原始数据处理代码Stata do文档&#xff09; 1、时间&#xff1a;2000-2022年 2、指标&#xff1a;证券代码、股票代码、年份、股票简称、ST或PT为1&#xff0c;否则为0、金融业为1&a…

【操作系统】线程的实现方式:用户线程和内核线程

1 用户级线程 完全在用户空间中实现和管理的线程。 它们的创建、同步和调度由应用程序通过用户级别的线程库实现&#xff0c;所有的线程管理工作都由应用程序负责&#xff0c;无需操作系统内核干预。在用户看来有多个线程&#xff0c;但操作系统并不能意识到线程的存在。 缺点…

Android apkanalyzer简介

关于作者&#xff1a;CSDN内容合伙人、技术专家&#xff0c; 从零开始做日活千万级APP。 专注于分享各领域原创系列文章 &#xff0c;擅长java后端、移动开发、商业变现、人工智能等&#xff0c;希望大家多多支持。 目录 一、导读二、概览三、用法3.1 使用 Android Studio3.1.1…

VR全景广告:让消费者体验沉浸式交互,让营销更有趣

好的产品都是需要广告宣传的&#xff0c;随着科技的不断发展&#xff0c;市面上的广告也和多年前的传统广告不同&#xff0c;通过VR技术&#xff0c;可以让广告的观赏性以及科技感更加强烈&#xff0c;并且相比于视频广告&#xff0c;成本也更低。 在广告营销中&#xff0c;关键…

深度解析自动化测试流程(纯干货)

最近很多小伙伴咨询自动化测试到底该怎么做&#xff1f;流程是什么样的&#xff1f;在每个阶段都需要注意什么&#xff1f;本文也就主要从自动化测试的基本流程入手&#xff0c;对面试自动化测试工程师的同学会有不少帮助。对于在职的朋友&#xff0c;也可以参考此流程&#xf…

Java集合类

Java集合类 集合类 集合类其实就是为了更好地组织、管理和操作我们的数据而存在的&#xff0c;包括列表、集合、队列、映射等数据结构。 集合根接口 Java中已经帮我们将常用的集合类型都实现好了&#xff0c;我们只需要直接拿来用就行了 所有的集合类最终都是实现自集合根…

exsi7.0 重新创建缺少的虚拟机磁盘文件文件(.vmdk)

数据存储浏览器中首发的虚拟机磁盘文件是虚拟机的界面文件&#xff0c;并且没有图标。 打开虚拟机电源时&#xff0c;出现文件未找到的错误。 查看虚拟机目录时存在平面文件 虚拟机磁盘的磁盘文件不存在或已损坏。 解决方案 如何重新补发丢失/丢失的虚拟磁盘光盘文件(.vmdk)&…