ElasticSeach--springboot中使用
目录
一.引入依赖
二.配置链接信息
三.索引库测试
1.创建索引库
2.查询索引库
3.删除索引库
四.文档测试
1.添加文档
2.修改文档
3.删除文档
4.查询具体文档
5.批量添加文档
五.查询测试
1.查询所有
2.根据属性term匹配查询
3.分页查询
4.排序
5.过滤属性
6.bool查询
7.范围查询
8.模糊查询
9.高亮查询
10.聚合查询
10.1最大年龄
10.2分组查询
一.引入依赖
<dependencies><dependency><groupId>org.elasticsearch</groupId><artifactId>elasticsearch</artifactId><version>7.8.0</version></dependency><!--es的客户端--><dependency><groupId>org.elasticsearch.client</groupId><artifactId>elasticsearch-rest-high-level-client</artifactId><version>7.8.0</version></dependency></dependencies>
二.配置链接信息
#自定义elasticsearch连接配置
elasticsearch:host: 192.168.81.128port: 9200
@Getter
@Setter
@Configuration
@ConfigurationProperties(prefix = "elasticsearch")
public class ElasticSearchConfig {private String host;private int port;@Beanpublic RestHighLevelClient client(){return new RestHighLevelClient(RestClient.builder(new HttpHost(host, port, "http")));}
}
三.索引库测试
1.创建索引库
/*** 添加索引库*/@Testpublic void AddIndex() throws IOException {//创建索引库CreateIndexRequest request = new CreateIndexRequest("user");//获取响应CreateIndexResponse response =restHighLevelClient.indices().create(request,RequestOptions.DEFAULT);boolean acknowledged = response.isAcknowledged();System.out.println("响应状态:"+acknowledged);}
2.查询索引库
//查询索引库@Testpublic void testGetIndex() throws IOException {GetIndexRequest request = new GetIndexRequest("user");GetIndexResponse response = restHighLevelClient.indices().get(request, RequestOptions.DEFAULT);//System.out.println(response.getAliases());//获取默认配置System.out.println(response.getDefaultSettings());//获取索引名称System.out.println(Arrays.toString(response.getIndices()));//获取映射System.out.println(response.getMappings());}
3.删除索引库
/*** 删除索引库*/@Testpublic void testDeleteIndex() throws IOException {//删除索引请求DeleteIndexRequest request = new DeleteIndexRequest("user");AcknowledgedResponse response = restHighLevelClient.indices().delete(request,RequestOptions.DEFAULT);System.out.println(response.isAcknowledged());restHighLevelClient.close();}
四.文档测试
1.添加文档
/*** 添加文档*/@Testpublic void testAddDoucument() throws IOException {/*** 第一次不存在时是创建,* 第二次存在时就是修改,将修改version版本号*/IndexRequest indexRequest = new IndexRequest("user");indexRequest.id("122");User user = new User();user.setId(122);user.setName("张三");user.setAge(12);user.setScore(123);//添加数据indexRequest.source(JSON.toJSONString(user), XContentType.JSON);IndexResponse response = restHighLevelClient.index(indexRequest, RequestOptions.DEFAULT);//获取索引库idSystem.out.println(response.getIndex());//获取文档idSystem.out.println(response.getId());//获取版本System.out.println(response.getVersion());//获取结果System.out.println(response.getResult());}
2.修改文档
/*** 修改文档*/@Testpublic void testUpadteDoc() throws IOException {UpdateRequest updateRequest = new UpdateRequest("user","122");User user = new User();user.setId(122);user.setName("张三");user.setAge(13);user.setScore(123);updateRequest.doc(JSON.toJSONString(user), XContentType.JSON);UpdateResponse res = restHighLevelClient.update(updateRequest, RequestOptions.DEFAULT);System.out.println(res.getId());System.out.println(res.getIndex());System.out.println(res.getResult());System.out.println(res.getVersion());restHighLevelClient.close();}
3.删除文档
/*** 删除文档*/@Testpublic void testDelteDoc() throws IOException {DeleteRequest deleteRequest = new DeleteRequest("user","122");DeleteResponse res = restHighLevelClient.delete(deleteRequest, RequestOptions.DEFAULT);System.out.println(res.getId());System.out.println(res.getIndex());System.out.println(res.getResult());}
4.查询具体文档
/*** 查询文档*/@Testpublic void testGetDoc() throws IOException {GetRequest getRequest =new GetRequest("user","122");GetResponse res = restHighLevelClient.get(getRequest, RequestOptions.DEFAULT);System.out.println(res.getIndex());System.out.println(res.getId());System.out.println(res.getSource());System.out.println(res.getFields());System.out.println(res.getSourceAsString()); //返回json串
// user
// 122
// {score=123, name=张三, id=122, age=12}
// {}
// {"age":12,"id":122,"name":"张三","score":123}}
5.批量添加文档
/*** 批量添加文档*/@Testpublic void testBulkAdd() throws IOException {User user1 = new User(1,"王五",12,213);User user2 = new User(2,"李四",321,213);User user3 = new User(3,"赵六",24,213);User user4 = new User(4,"zhangsan",41,213);User user5 = new User(5,"蔡徐坤",21,213);BulkRequest request = new BulkRequest("user");IndexRequest request1 = new IndexRequest("user").id(user1.getId().toString());request1.source(JSON.toJSONString(user1),XContentType.JSON);IndexRequest request2 = new IndexRequest("user").id(user2.getId().toString());request2.source(JSON.toJSONString(user2),XContentType.JSON);IndexRequest request3 = new IndexRequest("user").id(user3.getId().toString());request3.source(JSON.toJSONString(user3),XContentType.JSON);IndexRequest request4 = new IndexRequest("user").id(user4.getId().toString());;request4.source(JSON.toJSONString(user4),XContentType.JSON);IndexRequest request5 = new IndexRequest("user").id(user5.getId().toString());request5.source(JSON.toJSONString(user5),XContentType.JSON);request.add(request1);request.add(request2);request.add(request3);request.add(request4);request.add(request5);BulkResponse res = restHighLevelClient.bulk(request, RequestOptions.DEFAULT);System.out.println(res.getIngestTook());System.out.println(res.getTook());System.out.println(res.getIngestTookInMillis());}
五.查询测试
1.查询所有
/*** 查询所有*/@Testpublic void testqueryAll() throws IOException {SearchRequest searchRequest = new SearchRequest();//指定索引库searchRequest.indices("user");SearchSourceBuilder sourceBuilder = new SearchSourceBuilder();//查询所有sourceBuilder.query(QueryBuilders.matchAllQuery());searchRequest.source(sourceBuilder);SearchResponse res = client.search(searchRequest, RequestOptions.DEFAULT);//查询匹配SearchHits hits = res.getHits();System.out.println("took:" + res.getTook());System.out.println("是否超时:" + res.isTimedOut());System.out.println("TotalHits:" + hits.getTotalHits());System.out.println("MaxScore:" + hits.getMaxScore());for (SearchHit hit : hits) {System.out.println(hit.getSourceAsString());}}
2.根据属性term匹配查询
/*** 根据term条件查询* @throws IOException*/@Testpublic void testTermQuery() throws IOException {SearchRequest request = new SearchRequest();request.indices("user");//构建查询的请求体SearchSourceBuilder sourceBuilder = new SearchSourceBuilder();//查询所有对象sourceBuilder.query(QueryBuilders.termQuery("name","zhangsan"));request.source(sourceBuilder);SearchResponse response = client.search(request, RequestOptions.DEFAULT);//查询匹配SearchHits hits = response.getHits();System.out.println("took:" + response.getTook());System.out.println("是否超时:" + response.isTimedOut());System.out.println("TotalHits:" + hits.getTotalHits());System.out.println("MaxScore:" + hits.getMaxScore());for (SearchHit hit : hits) {System.out.println(hit.getSourceAsString());}}
3.分页查询
/*** 分页查询*/@Testpublic void testPageQuery() throws IOException {SearchRequest request = new SearchRequest();request.indices("user");//构建查询的请求体SearchSourceBuilder sourceBuilder = new SearchSourceBuilder();//查询所有对象sourceBuilder.query(QueryBuilders.matchAllQuery());//第一页sourceBuilder.from(0);//三条记录sourceBuilder.size(11);request.source(sourceBuilder);//添加分页信息SearchResponse response = client.search(request, RequestOptions.DEFAULT);//查询匹配SearchHits hits = response.getHits();System.out.println("took:" + response.getTook());System.out.println("是否超时:" + response.isTimedOut());System.out.println("TotalHits:" + hits.getTotalHits());System.out.println("MaxScore:" + hits.getMaxScore());for (SearchHit hit : hits) {System.out.println(hit.getSourceAsString());}}
4.排序
//年龄排序 倒序,从大到小sourceBuilder.sort("age", SortOrder.DESC);
5.过滤属性
//查询过滤字段String[] excludes = {"age"};//过滤掉age属性String[] includes = {};sourceBuilder.fetchSource(includes,excludes);
6.bool查询
//创建搜索对象SearchRequest request = new SearchRequest();request.indices("user");//构建查询的请求体SearchSourceBuilder sourceBuilder = new SearchSourceBuilder();BoolQueryBuilder boolQuery = QueryBuilders.boolQuery();//必须包含boolQuery.must(QueryBuilders.matchQuery("age",18));//一定不包含boolQuery.mustNot(QueryBuilders.matchQuery("name","lisi"));//可能包含boolQuery.should(QueryBuilders.matchQuery("name","zhangsan"));//查询所有对象sourceBuilder.query(boolQuery);request.source(sourceBuilder);SearchResponse response = client.search(request, RequestOptions.DEFAULT);
7.范围查询
//创建搜索对象SearchRequest request = new SearchRequest();request.indices("user");//构建查询的请求体SearchSourceBuilder sourceBuilder = new SearchSourceBuilder();//范围查询RangeQueryBuilder rangeQuery = QueryBuilders.rangeQuery("age");//大于等于rangeQuery.gte("19");//小于等于rangeQuery.lte("40");//查询所有对象sourceBuilder.query(rangeQuery);request.source(sourceBuilder);SearchResponse response = client.search(request, RequestOptions.DEFAULT);
8.模糊查询
//创建搜索对象SearchRequest request = new SearchRequest();request.indices("user");//构建查询的请求体SearchSourceBuilder sourceBuilder = new SearchSourceBuilder();//模糊查询FuzzyQueryBuilder fuzzyQuery = QueryBuilders.fuzzyQuery("name", "zhangsan");fuzzyQuery.fuzziness(Fuzziness.ONE);sourceBuilder.query(fuzzyQuery);request.source(sourceBuilder);SearchResponse response = client.search(request, RequestOptions.DEFAULT);
9.高亮查询
//高亮查询SearchRequest request = new SearchRequest("user");//创建查询请求体构建器SearchSourceBuilder sourceBuilder = new SearchSourceBuilder();//构建查询方式,高亮查询TermQueryBuilder termQueryBuilder = QueryBuilders.termQuery("name", "zhangsan");//设置查询方式sourceBuilder.query(termQueryBuilder);//构建高亮字段HighlightBuilder highlightBuilder = new HighlightBuilder();//设置标签前缀highlightBuilder.preTags("<font color='red'");//设置标签后缀highlightBuilder.postTags("</font>");//设置高亮字段highlightBuilder.field("name");//设置高亮构建对象sourceBuilder.highlighter(highlightBuilder);//设置请求体request.source(sourceBuilder);//客户端发送请求,获取响应对象SearchResponse response = client.search(request, RequestOptions.DEFAULT);// 打印响应结果SearchHits hits = response.getHits();System.out.println("took::"+response.getTook());System.out.println("time_out::"+response.isTimedOut());System.out.println("total::"+hits.getTotalHits());System.out.println("max_s core::"+hits.getMaxScore());System.out.println("hits::::>>");for (SearchHit hit : hits) {String sourceAsString = hit.getSourceAsString();System.out.println(sourceAsString);//打印高亮结果Map<String, HighlightField> highlightFields = hit.getHighlightFields();System.out.println(highlightFields);System.out.println("<<::::");}
10.聚合查询
10.1最大年龄
SearchRequest request = new SearchRequest().indices("user");SearchSourceBuilder sourceBuilder = new SearchSourceBuilder();sourceBuilder.aggregation(AggregationBuilders.max("maxAge").field("age"));//设置请求体request.source(sourceBuilder);SearchResponse response = client.search(request, RequestOptions.DEFAULT);//打印响应结果SearchHits hits = response.getHits();System.out.println("hits = " + hits);System.out.println(response);
10.2分组查询
//创建搜索对象SearchRequest request = new SearchRequest().indices("user");SearchSourceBuilder searchSourceBuilder = new SearchSourceBuilder();searchSourceBuilder.aggregation(AggregationBuilders.terms("age_groupby").field("age"));//设置请求体request.source(searchSourceBuilder);SearchResponse response = client.search(request, RequestOptions.DEFAULT);System.out.println(response.getHits());System.out.println(response);
相关文章:
ElasticSeach--springboot中使用
目录 一.引入依赖 二.配置链接信息 三.索引库测试 1.创建索引库 2.查询索引库 3.删除索引库 四.文档测试 1.添加文档 2.修改文档 3.删除文档 4.查询具体文档 5.批量添加文档 五.查询测试 1.查询所有 2.根据属性term匹配查询 3.分页查询 4.排序 5.过滤属性 6.boo…...
(1)(1.9) MSP (version 4.2)
文章目录 前言 1 协议概述 2 配置 3 参数说明 前言 ArduPilot 支持 MSP 协议,可通过任何串行端口进行遥测、OSD 和传感器。这样,ArduPilot 就能将遥测数据发送到 MSP 兼容设备(如大疆护目镜),用于屏幕显示&#x…...
mysql 表锁 行锁
目录 表锁(Table Lock) 行锁(Row Lock) 进一步通过举例解释 update操作走的是什么锁 表锁示例: 行锁示例: MySQL 中常见的锁类型包括: 表锁(Table Lock) 是针对整个…...
Google 提示:切忌滥用 DORA 指标
谷歌的 DevOps 研究与评估团队从事指标交易,即 DevOps 指标。但其最新的相关报告也警告不要过度使用这些指标。 DevOps 研究与评估小组(DORA)建议 IT 专业人员根据四个关键指标来评估团队绩效:部署频率,变更准备时间&a…...
2023年全球架构师峰会(ArchSummit北京站2023)-核心PPT资料下载
一、峰会简介 ArchSummit聚焦业界强大的技术成果,秉承“实践第一、案例为主”的原则,展示先进技术在行业中的典型实践,以及技术在企业转型、发展中的推动作用。旨在帮助技术管理者、CTO、架构师做好技术选型、技术团队组建与管理,…...
安全、高效的MySQL DDL解决方案
MySQL作为目前应用最广泛的开源关系型数据库,是许多网站、应用和商业产品的主要数据存储。在生产环境,线上数据库常常面临着持续的、不断变化的表结构修改(DDL),如增加、更改、删除字段和索引等等。其中一些DDL操作在M…...
100GPTS计划-AI学术AcademicRefiner
地址 https://chat.openai.com/g/g-LcMl7q6rk-academic-refiner https://poe.com/AcademicRefiner 测试 减少相似性 增加独特性 修改http://t.csdnimg.cn/jyHwo这篇文章微调 专注于人工智能、科技、金融和医学领域的学术论文改写,秉承严格的专业和学术标准。 …...
k8s 中部署Jenkins
创建namespace apiVersion: v1 kind: Namespace metadata:name: jenkins创建pv以及pvc kind: PersistentVolume apiVersion: v1 metadata:name: jenkins-pv-volumenamespace: jenkinslabels:type: localapp: jenkins spec:#storageClassName: manualcapacity:storage: 5Giacc…...
Spring Cloud和Zookeeper的集成,构建高可扩展的分布式系统
引言 构建高可扩展的分布式系统是现代应用程序开发中的重要挑战之一。在分布式系统中,负载均衡和分布式锁是两个关键问题。本文将介绍如何使用Spring Cloud和Zookeeper集成来实现高可扩展的分布式系统,并分析其负载均衡原理和分布式锁的应用。 1. 分布…...
【唐山海德教育】安全员c证怎么考
1、注册地在本市的施工单位在职“三类人员”可申请参加安全生产考核; 2、职业道德良好,身体健康,年龄不超过60周岁(法定代表人除外); 3、筑施工企业专职安全生产管理人员需有中专(含高中、中技…...
MySQL是如何保证数据不丢失的?
文章目录 前言Buffer Pool 和 DML 的关系DML操作流程加载数据页更新记录 数据持久化方案合适的时机刷盘双写机制日志先行机制日志刷盘机制Redo Log 恢复数据 总结 前言 上篇文章《InnoDB在SQL查询中的关键功能和优化策略》对InnoDB的查询操作和优化事项进行了说明。但是&#…...
CUMT--Java复习--泛型与集合
目录 一、泛型 1、概述 2、通配符 3、有界类型 二、集合 1、概述 2、迭代器接口 三、集合类 1、Collection接口 2、List接口 3、Set接口 4、Queue接口 5、Map接口 四、集合转换 五、集合工具类 一、泛型 1、概述 从JDK5.0开始,Java引入泛型类型&…...
Android 权限申请
在Android中,从Android 6.0(API级别23)开始,应用在运行时需要动态申请权限。以下是一些步骤来动态申请权限: 在应用的清单文件(AndroidManifest.xml)中声明需要的权限。例如,如果应…...
R语言【base】——invisible将控制台的输出模式调整为隐藏,只允许赋值后输出,返回对象的(临时)不可见副本
Package base version 4.3.2 invisible(x NULL) 参数【x】:一个任意的 R 对象,默认为 NULL。 如果希望函数返回的值可以赋值,但在未赋值时不打印,则可以使用该函数。 f <- function(x){if (x){return (x)} else {return (in…...
LA@线性代数学习总结@主要对象和问题@思想方法
文章目录 线性代数研究对象主要问题联系核心概念核心定理 核心操作和运算基础高级小结 性质和推导方法问题转换为线性方程组求解问题验证和推导性质定理 线性代数研究对象 线性代数的研究对象主要是行列式和矩阵(向量)矩阵这种对象可以做的操作和运算很多,特别是方阵,它们的计…...
VMware克隆虚拟机
要求:利用模板虚拟机hadoop100,克隆出hadoop101虚拟机。 1、鼠标右键点击已存在的模板虚拟机hadoop100 --> 管理 --> 克隆 2、选择克隆自虚拟机中的当前状态 3、创建完整克隆 4、修改虚拟机名称、位置 5、等待克隆完成后,则成功克隆出…...
C语言中常见的关键字
一、数据类型关键字(20个) 基本数据类型(5个) void:声明函数无返回值或无参数,声明无类型指针,显式丢弃运算结果 char:字符型类型数据,属于整型数据的一种 intÿ…...
新型智慧视频监控系统:基于TSINGSEE青犀边缘计算AI视频识别技术的应用
边缘计算AI智能识别技术在视频监控领域的应用有很多。这项技术结合了边缘计算和人工智能技术,通过在摄像头或网关设备上运行AI算法,可以在现场实时处理和分析视频数据,从而实现智能识别和分析。目前来说,边缘计算AI视频智能技术可…...
智能优化算法应用:基于梯度算法3D无线传感器网络(WSN)覆盖优化 - 附代码
智能优化算法应用:基于梯度算法3D无线传感器网络(WSN)覆盖优化 - 附代码 文章目录 智能优化算法应用:基于梯度算法3D无线传感器网络(WSN)覆盖优化 - 附代码1.无线传感网络节点模型2.覆盖数学模型及分析3.梯度算法4.实验参数设定5.算法结果6.参考文献7.MA…...
如何使用Docker搭建青龙面板并结合内网穿透工具发布至公网可访问
文章目录 一、前期准备本教程环境为:Centos7,可以跑Docker的系统都可以使用。本教程使用Docker部署青龙,如何安装Docker详见: 二、安装青龙面板三、映射本地部署的青龙面板至公网四、使用固定公网地址访问本地部署的青龙面板 正文…...
fastjson1.2.24 反序列化漏洞(CVE-2017-18349)分析
FastJson在< 1.2.24 版本中存在反序列化漏洞,主要原因FastJson支持的两个特性: fastjson反序列化时,JSON字符串中的type字段,用来表明指定反序列化的目标恶意对象类。fastjson反序列化时,字符串时会自动调用恶意对…...
Linux中history使用(过滤,显示时间,查找)
显示历史命令 history 显示最后几条执行命令 history 5 显示history记录中命令执行时间 export HISTTIMEFORMAT"%F %T " 显示命令中有某些内容的最后几条执行命令 history | grep key | tail -n 2...
issue阶段的选择电路的实现
1-of-M的仲裁电路 为什么要实现oldest-first 功能的仲裁呢? 这是考虑到越是旧的指令,和它存在相关性的指令也就越多,因此优先执行最旧的指令,则可以唤醒更多的指令,能够有效地提高处理器执行指令的并行度,而且最旧的指…...
BearPi Std 板从入门到放弃 - 后天篇(3)(ESP8266透传点灯)
简介 电脑搭建一个TCP Server, ESP8266 串口设置好透传模式, 再由TCP Server发送指令控制灯的亮灭; 开灯指令: led_on回车 ; 关灯指令: led_off回车 主芯片: STM32L431RCT6 LED : PC13 \ 推挽输出即可 \ 高电平点亮 串口: Usart1 / LPUART E…...
【Linux】macOS下使用scp命令编写脚本上传文件至服务器
使用时需要输入服务器密码 #!/bin/bash# 检查传递给脚本的参数数量 if [ "$#" -ne 2 ]; thenecho "Usage: $0 <本地文件路径> <服务器文件夹路径>"exit 1 fi# 接收命令行参数 local_file"$1" remote_path"$2"# 定义远程服…...
难以置信:WINDOWS11真的取消了助记符
助记符是个好东西,记住了非常的方便。这几天升级到WINDOWS11之后,发现助记符被全面取消!真是难以置信! 现在WIN11越来越象MAC,MAC好用吗?当然不好用。 其实WIN11完全可以开发两套界面,各取所需。…...
使用VSC从零开始Vue.js——备赛笔记——2024全国职业院校技能大赛“大数据应用开发”赛项——任务3:数据可视化
使用Visual Studio Code(VSC)进行Vue开发非常方便,下面是一些基本步骤: 一、下载和安装Vue 官网下载地址Download | Node.js Vue.js是基于Node.js的,所以首先需要安装Node.js,官网下载地址:No…...
企业直聘招聘人才求职系统招聘会小程序系统源码
技术栈: 端 原生小程序开发 后端php7.2 数据库mysql5.6 主要功能: 企业入住 ,企业直聘 个人实名认证,人才求职 发布线上招聘会 企业招聘邀请 个人简历置顶 刷新 浏览足迹浏览 附近 招聘信息查看...
大型语言模型:SBERT — Sentence-BERT
slavahead 一、介绍 Transformer 在 NLP 方面取得了进化进步,这已经不是什么秘密了。基于转换器,许多其他机器学习模型已经发展起来。其中之一是BERT,它主要由几个堆叠的变压器编码器组成。除了用于情感分析或问答等一系列不同的问题外&#…...
高效编写软件测试报告的关键技巧
引言: 软件测试报告是测试团队与开发团队之间沟通的重要工具,它记录了测试过程中的发现、问题和建议。一个清晰、准确、高效的软件测试报告可以帮助开发团队更好地理解测试结果,并及时修复问题。本文将介绍一些高效编写软件测试报告的关键技巧…...
网站关键词推广哪家好/搜索引擎营销的主要方式有
2019独角兽企业重金招聘Python工程师标准>>> 一.系统目录结构 1.linux系统目录图 2.目录介绍 /bin:bin是Binary的缩写,该目录下存放的是最常用的命令。/boot:该目录下存放的是启动Linux时使用的一些核心文件,包括一些连…...
复古风格网站/网站整合营销推广
原文 https://mp.weixin.qq.com/s/4DRWRPaOizGEClmAIwgB2Q hey~大家好,今天要给大家分享的是一个相对基础的主题:终端下的基本操作,相信很多同学对于终端有着抵触的看法,认为哎呀终端有什么好用的有那么多难记的命令,…...
网站建设的简洁性/百度智能建站系统
AngularJS路由报错: Unknown provider: $routeProvider根据先知们的指引,在网上爬贴,有翻到官方的解决文章。原来在AgularJS1.2.0及其之后的版本中,ngRoute已经移动到单独的文件当中,再使用则需要载入angular-route.js这一文件&am…...
旅游网站建设目的/by网站域名
一、go的搭建 二、初识go 三、混个脸熟--go 四、go的语言结构 五、go的常量与变量 六、go基础数据类型 七、go 条件语句 八、go 运算符 九、go条件语句switch 十、go循环语句 十一、go之数组 十二、go初级函数 十三、go函数高级运用 十四、go之变量、指针、内存地址 十五、go之…...
前端会员中心wordpress/杭州百度开户
【算法分析】 简单而言,将中缀表达式转换为后缀表达式的算法需要注意以下两点。 ● 操作数始终入操作数栈。 ● 操作符入操作符栈时,比较与操作符栈的栈顶元素的优先级,然后选择入操作符栈还是入操作数栈。直至将操作符栈的所有元素入操作数栈…...
有源码后怎么做网站/无锡百度竞价推广
原标题:这是MySQL的bug吗?我们在实际业务场景中,经常会有一个这样的需求,插入某条记录,如果已经存在了则更新它如果更新日期或者某些列上的累加操作等,我们肯定会想到使用INSERT ... ON DUPLICATE KEY UPDA…...