前言:Elastics Search(以后全部简称es)入门看这一篇就够了?是的,看这一篇就可以学习到es从入门到使用到生产的相关核心点,但Es家族庞大,如果深入学习或者去啃的话,没个一年半载是不可能的,所以仅这一篇也是在开玩笑了,光是Elastics Search + Logstash + Kibana (以后全部简称ELK)技术栈就有的学了,里面还涉及到这三大神器的很多插件及监控工具,一言难尽,不过也不必慌,我也没打算在ELK上花太多时间,如果仅作为上手开发和基础的原理掌握,搞定ELK数周内即可.本篇可以作为学习es家族的索引或是目录,顺着这条线学习,一篇即可,否则思路会过于混乱.标题下没内容的部分不要问,问就是暂时没写完!


目录

1.基础部分

1.1什么是es?

1.2什么是logstash?

1.3什么是kinaba?

1.4ELK安装及启动

1.4.1Es安装及启动

1.4.2Logstash安装及启动

1.4.3Kibana安装及启动

1.5Es常用插件

1.5.1 Elasticsearch-head

1.5.2 Marvel

1.5.3 Graph

1.5.4 IK中文分词器

2.进阶部分

2.1数据同步

2.1.1与关系型数据库同步

2.1.2与非关系型数据库同步

2.1.3与消息中间件同步

2.2数据检索

2.3数据聚合

3.实战部分

3.1Es与SpringData结合实战

3.2Es全文搜索项目实战

4.升华部分

4.1Es架构设计

4.2Es性能优化

4.3Es监控

5.总结


 

1.基础部分

 

1.1什么是es?

Es是一款开源的搜索服务器,底层技术用的仍是Lucene,Es和Solr都是在Luncene上进一步的封装,根据DB-Engines的排名显示,目前市场上搜索引擎的受欢迎度Es排第一,其次是solr,lucene.Es具有开源,分布式,Restful,Json响应等多种天然优势,受到各大企业青睐,这也是我把es作为主要学习的搜索引擎的原因.关于solr和lunce简单了解即可.

Lucene 简介:https://blog.csdn.net/lovexiaotaozi/article/details/103125034

Solr 简介:https://blog.csdn.net/lovexiaotaozi/article/details/103368154

 

1.2什么是logstash?

logstash是es家族提供的一款日志收集管道,可以定义数据源的输入和输出,数据的输入源可以是多种,支持同时从关系型数据库及非关系型数据库实时采集,如下图所示,至于采集到的数据最终输出到哪,用户可以自己定义,一般会输出到es进行存储,便于检索及分析。

 

1.3什么是kinaba?

kinaba是为 Elasticsearch设计的开源分析和可视化平台,可以用来查询,监控,分析,简而言之就是一款数据可视化的利器。

 

1.4ELK安装及启动

 

1.4.1Es安装及启动

①下载:https://www.elastic.co/cn/downloads/elasticsearch 根据自己环境及要求选择版本和包类型,因为公司电脑原因,我这里以win64为例,所以版本均选择一个中间的稳定版演示:6.8.5 (下面也这个版本,不再赘述)

②安装:其实都是绿色版,解压即可用,将下载后的压缩包解压即可。

③启动:进入解压后的安装目录,按下shift+鼠标右键->在此处打开命令窗口->./bin/elasticsearch.bat->敲下回车:

当你看到下面这句就是成功了,可以在浏览器打开访问 http://127.0.0.1:9200验证

 

1.4.2Logstash安装及启动

①下载:https://www.elastic.co/cn/downloads/logstash

②安装:解压即可

③启动:在解压后的config目录下找到logstash-sample.conf,然后把里面的配置内容稍作修改(置空):

input { stdin {} 
} 
output { stdout {} 
}

然后在解压后的目录下shift+鼠标右键->在此处打开命令窗口->键入 ./bin/logstash.bat -f ../config/logstash-sample.conf 

启动成功后可以在浏览器输入:http://localhost:9600/ 进行验证。(更多配置及使用我会在接下来用到时提到,这里能启动即可)

 

1.4.3Kibana安装及启动

①下载:https://www.elastic.co/cn/downloads/kibana

②安装:解压即可

③启动:进入bin目录,双击kibana.bat 敲几下回车静候即可,看到下面这句即说明已启动:

打开浏览器输入该地址访问即可完成验证。

 

1.5Es常用插件

 

1.5.1 Elasticsearch-head

Elasticsearch-head是一款用来浏览、与Elastic Search簇进行交互的web前端展示插件,简单来说,就是一款可以在浏览器方便你直接通过图形化界面操作es的工具。

 下载地址:https://github.com/mobz/elasticsearch-head

下载后可以通过nodejs或者docker容器启动,具体请参考github文档,我不再赘述。

补充一句,如果你的插件无法与es连接,可以在你的es解压目录下的config文件夹中找到elasticsearch.yml 加入如下配置:

#-----------------------------------插件支持(es-head)----------------------------
# 是否支持跨域
http.cors.enabled: true# *表示支持所有域名
http.cors.allow-origin: "*"

然后重启es,启动ok后重写连接即可。 

 

1.5.2 Marvel

Marvel是Elasticsearch的管理和监控工具,作用可以类比spring-cloud的turbine.集群中必须每个节点都安装此插件。

公司电脑原因我暂时无法集群,这块先跳过,后补。

 

1.5.3 Graph

Graph插件一个新的用于 Elasticsearch 和 Kibana 的插件,通过它们您可以很方便的发现、理解和探索现有数据之间的关系。

环境原因,后补。

 

1.5.4 IK中文分词器

学过Lucene或者solr的应该对IK中文分词器比较熟悉了,是一款对中文分词友好支撑的插件。

 

2.进阶部分

 

2.1数据同步

 

2.1.1与关系型数据库同步

这里我仅以最常用的MySQL为例,演示将MySQL作为数据的输入端,将es作为数据的输出端,通过logstash来打通数据的输入和输出。

①进入logstash解压后的目录->进入config文件夹->编辑logstash-sample.conf->输入如下内容:

input {stdin{}jdbc {# mysql jdbc connection string to our backup databse  后面的test对应mysql中的test数据库jdbc_connection_string => "jdbc:mysql://localhost:3306/costa-spider"# the user we wish to excute our statement asjdbc_user => "root"jdbc_password => "123456"# the path to our downloaded jdbc driverjdbc_driver_library => "../lib/mysql-connector-java-5.1.47.jar"# the name of the driver class for mysqljdbc_driver_class => "com.mysql.jdbc.Driver"jdbc_paging_enabled => "true"jdbc_page_size => "50000"#以下对应着要执行的sql的绝对路径。statement => "SELECT * FROM main_material"#定时字段 各字段含义(由左至右)分、时、天、月、年,全部为*默认含义为每分钟都更新(测试结果,不同的话请留言指出)schedule => "* * * * *"#设定ES索引类型}}output {elasticsearch {hosts => "127.0.0.1:9200"index => "main_material"document_id => "%{id}"}stdout {#以JSON格式输出codec => json_lines}
}

tips1:jdbc_connection_string,指明你要连接的数据库的url及端口号和库名。

tips2:jdbc_driver_liblary,需要指明mysql的jdbc驱动文件路径,这里mysql-connector-java需要自己去mvn仓库下载。

tips3: statement 这里可以指定你要把哪张表里的数据导入到es,以及是否实时同步跟新等,我这里仅演示最基础的,不触发更新.

tips4:index 名字可以随意取,对应的其实是es里的库名,在之后搜索时需要用到,我这里保持与MySQL库名一致.

tip5:document_id 文档的id,我这里与数据库里的id一一对应,以%{id}来表示即可.

②重启logstash,观察数据是否被导入,通过logstash的命令行观察到select * from *** 以及导入的数据会被打印出来基本可以确定数据是否已被导入.

③打卡head插件页面,通过查询验证一下:

可以发现数据已被成功从MySQL导入至ES中。 

 

2.1.2与非关系型数据库同步

 

2.1.3与消息中间件同步

 

2.2数据检索

关于Es数据检索,有非常多的内容,我这里不做演示,仅总结一下,以便在不同的场景下可以找到技术上的解决方案。也会在实战部分结合Sringdata-es演示几个最常用的检索。

Es支持:

全文检索:顾名思义,就是在被搜索文档的全文(全字段)中寻找与搜索内容相匹配的内容。

DSL检索:其实就是以Json格式的es语法进行检索,可以对检索结果加高亮,偏移,分页等功能。

多字段检索 (Multi-field Search):可以针对多个指定的字段进行检索,在这些指定字段中,如果有命中被搜索内容的,会被加入查询结果。

Boosting提升某字段得分的检索:可以帮助实现针对某一字段的得分权重更高,比如我想搜索文章标题中包含“头秃”的文章排序最靠前,文章内容中包含“头秃“的文章排序次之,就可以通过boosting查询获得。

Bool检索:可以使用类似AND / OR / NOT运算符来帮助检索,类似在Mysql中where xxx = ? and xxx != ?

Fuzzy模糊检索:不需要精确匹配搜索内容,只需要部分匹配即可,比如用户本来想搜索beautiful girl,但一不小心打成了beautfoful girl,这种情况仍可以通过模糊检索给用户返回正确的搜索内容。

Wildcard Query 通配符检索:这个就比较熟悉了,类似于Mysql的like %..%这种搜索。

正则表达式检索:正则表达式应该都很熟悉了,这种搜索模式可以通过正则表达式来匹配被搜索内容。

匹配短语检索:匹配短语查询要求查询字符串中的所有词都存在于文档中,对词组在文章中出现的顺序有较高要求,默认与被搜索短语顺序一致,但可以手动指定偏离值。

匹配词组前缀检索:相当于宽泛或自动的匹配短语检索,对单词的顺序和位置没有严格要求,但对性能消耗比较大。

字符串检索 (Query String):可以实现上面提到的几乎全部检索方式,查询语法要遵循es的查询语法,不同的是以一个字符串参数作为查询入参。

简化的字符串检索 (Simple Query String):简化版的字符串查检索,更适合用于暴露给用户的单个搜索框。

Term/Terms检索(指定字段检索):Term搜索是针对结构化数据的,对结构化数据的指定字段进行搜索,在其中找到完全匹配的结果并返回。

Term排序检索-(Term Query - Sorted):Term查询和其他查询一样,轻松的实现排序。多级排序也是允许的。

范围检索(Range query):也是针对结构化数据的检索,比如我要检索出文档中所有创建日期处于某一指定日期之内的数据。

Function 得分:Field值因子( Function Score: Field Value Factor),可以将指定字段纳入得分计算的结果中,从而实现一些特殊功能,比如:想把用户评价最高的商品排在最前面。

Function 得分:衰减函数( Function Score: Decay Functions ):功能跟上面的Field Value Factor相反,得分是根据某一字段的值降低,比如差评的商品排后面,可以借助此功能实现。

Function得分:脚本得分( Function Score: Script Scoring ):得分可以用指定的脚本计算,比如Groovy脚本编写的脚本。

 

2.3数据聚合

Es提供了强大的数据聚合功能,数据聚合功能赋予了es强大的大数据统计能力,通过数据聚合,我们可以做一些分析和统计工作,这块内容比较类似Mysql的count,group by,order by ,distinct等。这里我依旧不演示,因为通过crul这种方式代码量比较重,个人还是更喜欢用Spring造好的轮子去操作,把核心放在业务上,在实战部分会有相应演示。

 

3.实战部分

 

3.1Es与SpringData结合实战

这里主要简单演示集成方法和简单的CRUD操作,具体的操作我甚至不太想演示,因为springdata十分强大,足够简单,只要你用过JPA就可以直接上手,操作起来和JPA没啥两样,而且官方文档也很给力,只要你有一点英文基础,参照官方文档基本上可以轻松上手.

关于实战其实是最无聊的一部分,强烈建议阅读spring官方文档,参照文档,不要为了贪图一时之快选择网上杂七杂八的教程,这样是学不到东西的,Spring的东西更新极快,参照网上教程虽然简单,但版本一换指不定你就掉哪个坑里了.

凡是不懂不要问百度,问就问 https://spring.io

官方文档:https://docs.spring.io/spring-data/elasticsearch/docs/3.2.5.RELEASE/reference/html/

①引入依赖:spring-boot-starter-data-elasticsearch (本篇采用截止2020-3月最新的版本:3.2.5.RELEASE)

②配置连接方式:这里我选最新的连接配置方式,原因是据说原来的EsTemplate性能不咋滴,于是spring官方重新升级了一套高级的Rest API,看名字都可以看出来...

@Configuration
public class EsConf extends AbstractElasticsearchConfiguration {@Overridepublic RestHighLevelClient elasticsearchClient() {return RestClients.create(ClientConfiguration.localhost()).rest();}// no special bean creation needed// use the ElasticsearchEntityMapper@Bean@Overridepublic EntityMapper entityMapper() {ElasticsearchEntityMapper entityMapper = new ElasticsearchEntityMapper(elasticsearchMappingContext(),new DefaultConversionService());entityMapper.setConversions(elasticsearchCustomConversions());return entityMapper;}}

 ③创建实体对象,可以理解为传统关系型数据库中的Model:

@Data
@Document(indexName = "item", type = "docs")
public class Item {@Idprivate Long id;@Field(type = FieldType.Text, analyzer = "ik_max_word")private String title;// 标题@Field(type = FieldType.Keyword)private String brand; // 品牌@Field(type = FieldType.Double)private Double price; // 价格
}

 ④创建Repository接口,可以理解为传统数据库中的DAO层:

只要命名遵循spring提供的namespace命名规范,就可以直接使用spring封装好的语句,无需自己再去写查询语句,非常方便了,和JPA一毛一样:

public interface ItemRepository extends Repository<Item, Long> {List<Item> findByTitleAndPrice(String title, Double price);List<Item> findAllByPrice(Double price);Boolean deleteItemByTitle(String title);
}

⑤测试CRUD

@RunWith(SpringRunner.class)
@SpringBootTest(classes = EsSpringBootApplication.class)
public class CrudTest {@ResourceElasticsearchOperations operations;@Resourceprivate ItemRepository repository;@Testpublic void crud(){//新增IndexQuery query = new IndexQueryBuilder().withId(item.getId().toString()).withObject(item).build();String documentId = operations.index(query);System.out.println("新增成功,Id是:" + documentId);//查询List<Item> items = repository.findByTitleAndPrice("aa", 6.64);System.out.println(items);//删除boolean deleted = repository.deleteItemByTitle("bb");System.out.println("删除状态:"+deleted);//更新UpdateRequest request = new UpdateRequest();//...UpdateQuery updateQuery = new UpdateQueryBuilder().withId(item.getId().toString()).withIndexName("item").withType("docs").withUpdateRequest(request).build();operations.update(updateQuery);
}

其中增删查都比较简单,直接利用Repository提供的namespace方法匹配就可以轻松实现,更新稍微复杂一点,需要用到ElasticsearchOperations,在老版本里是ElasticsearchTemplate,因为性能问题已经不建议使用了.

这个类的使用在官方的文档里并没详细教程,所以值得注意一下.

 

3.2Es全文搜索项目实战

目前暂时没有项目,所以这块暂时跳过不写。

 

4.升华部分

 

4.1Es架构设计

Es采用了经典的分布式架构,采用主从模式进行数据的读写,跟zookeeper类似,在对临界数据的读写上,采用乐观锁机制防止数据被误修改,详情可以参阅这篇,个人觉得写得不错:

https://www.jianshu.com/p/5b1e8d610fea

 

4.2Es性能优化

性能测试工具:esrally

①分片大小:官方建议20-40G,并没有固定值,具体还得看业务场景和硬件条件.

②如果是基于时间的数据流,比如通过网络爬虫实时爬取的数据,可以在建索引时基于时间建立,方便维护.

③可以调整分片数,参照此公式:所需做大节点数=分片数*(副本数+1)https://www.elastic.co/guide/en/elasticsearch/reference/master/tune-for-search-speed.html

完整优化可参考:https://blog.csdn.net/laoyang360/article/details/97695931

 

4.3Es监控

Es监控可以用X-Pack,可以提供登陆安全防控,实时监控,可视化报告等功能。

 

5.总结

Es应该是目前市场上最主流的开源搜索引擎,对比完lucene,solr发现确实如此,而且es的生态也更加丰富,在大数据方向,elk几乎是必学必会的技能,国内外大厂也都有基于es的应用,所以没啥好说的,就两个字:牛逼!持续学就完了。


最后:如果你要深入学习Es,特别推荐一篇包罗万象的博客:https://blog.csdn.net/laoyang360/article/details/52244917

GitHub:https://github.com/elastic/elasticsearch

ES中文网,Es下载,中文文档等:https://www.elastic.co/cn/

有问题可以上Es中文社区:https://elasticsearch.cn/

如果本篇有帮助到你别忘了点个赞,文中若有任何不正之处也欢迎留言斧正,谢谢~

 

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

相关文章

  1. linux进程滴6种状态

    注:状态是计算机对进程滴一种标识,为了合理调度cpu资源,例如:如果一个进程标识为运行状态,说明该进程马上进入执行阶段;如果进程标识为停止状态,马上进入停止状态一般而言:进程分为三种: (1)运行 (2)停止 (3)阻塞 linux滴6种状态(个人见解): (1)R 运行 …...

    2024/5/9 18:26:30
  2. 最适合你React项目的JavaScript测试工具,有哪些?

    全文共1822字,预计学习时长6分钟来源:Pexels“信任是必须的,但核实也是必要的。”里根总统带火的一个俄罗斯习语非常符合我们谈论测试和QA时的情境。每个人都信任自己,每个程序员或开发人员都信任代码。但为什么我们不能“完全信任”他们呢?因为在编程领域,即便是极小的一…...

    2024/5/9 21:11:39
  3. 咖喱鸡腿饭怎么做 咖喱鸡腿饭美味做法

    原标题:咖喱鸡腿饭怎么做 咖喱鸡腿饭美味做法咖喱是有很多香料按比例兑释而成的酱料,在印度和泰国是非常的有名的。用咖喱搭配饭是一种非常大众的吃法,作为主食是非常不错的选择。需要的食材都非常的简单,很容易就能买到。今天要给大家介绍的是各种咖喱饭的做法。 咖喱饭做…...

    2024/5/9 18:45:00
  4. 城里男友陪我回老家过节,早上起来看到桌上的饭菜,我哽咽无语

    原标题: 城里男友陪我回老家过节,早上起来看到桌上的饭菜,我哽咽无语01 我和男友认识三年了,说实话,自从跟他在一起以后,我老觉得自己跟做梦似的,因为他真的太优秀了,我老觉得自己配不上他。 我是个农村女孩,从小是在泥堆里滚大的,性子也比较野,到了上学的年纪以后…...

    2024/5/5 19:10:57
  5. (C语言)简单的绝对值排序

    #include<stdio.h> #include<math.h> void cn(int a[],int n) { int i,j,t; for(i=0;i<n;i++) scanf("%d",&a[i]);//因为题目要求,所以就在函数里面输入了// for(i=0;i<n-1;i++) { for(j=i+1;j<n;j++) { if(abs(a[i])<abs(a[j]))//简单…...

    2024/5/5 19:10:53
  6. 扮靓秋冬的法宝,值得入手的时尚单品,简单却能给造型加分无数!

    原标题:扮靓秋冬的法宝,值得入手的时尚单品,简单却能给造型加分无数!少女软妹小挎包小鸡包包女新款时尚链条卡通斜挎迷你可爱潮包(小鸡包包容量可以放5.7寸手机,大人孩子都可以背) 网红款春秋装新款韩国东大门topdressing时髦前短后长宽松牛仔外套女韩版休闲牛仔衣 精致…...

    2024/5/5 19:10:49
  7. PAT乙级-1046 划拳 (15分)

    题目: 划拳是古老中国酒文化的一个有趣的组成部分。酒桌上两人划拳的方法为:每人口中喊出一个数字,同时用手比划出一个数字。如果谁比划出的数字正好等于两人喊出的数字之和,谁就赢了,输家罚一杯酒。两人同赢或两人同输则继续下一轮,直到唯一的赢家出现。 下面给出甲、乙…...

    2024/5/5 19:10:45
  8. 2.30.重新认识老朋友: Math 和 Scanner

    重新认识老朋友:Math 查看Math类的源代码 看例程:学习Math中的常用方法 Math类的文档 https://docs.oracle.com/en/java/javase/12/docs/api/java.base/java/lang/Math.html 重新认识老朋友:Scanner Scanner 的作用 查看 Scanner 的源代码和 since,理解 public 带来的现实中…...

    2024/5/5 19:10:41
  9. 瞄准风险靶心,落实安全生产措施

    原标题:瞄准风险靶心,落实安全生产措施安全工作没有休止符,只有365个日日夜夜足够重视、时刻防范、抓好落实,我们才能过一个平安祥和年。 近日,《山东省安全生产风险管控办法》(以下简称《办法》)颁布。《办法》共30条,其中提到,要建立安全生产风险分级管控制度,并明确…...

    2024/5/5 19:10:37
  10. 经销商如何在小程序的博弈中出奇制胜

    原标题:经销商如何在小程序的博弈中出奇制胜自从2017年1月9日微信小程序的到来引导用户从多个转为一个端口导入,一步解决iOS和安卓应用之战。原先被击败的应用将会在小程序的生态里重新崛起,打造全新应用场景,给用户和商家提供更多选择。诠释了小程序“轻、便、巧”多优势的…...

    2024/5/5 19:10:34
  11. 31 - Spark - coalesce算子

    coalesce(numPartitions) 案例作用:缩减分区数,用于大数据集过滤后,提高小数据集的执行效率。 需求:创建一个4个分区的RDD,对其缩减分区package com.dark.spark.SparkStudent.Spark_RDDimport org.apache.spark.rdd.RDD import org.apache.spark.{SparkConf, SparkContext…...

    2024/5/5 19:10:29
  12. 专家说豆干加工设备这样配套更省钱!

    原标题:专家说豆干加工设备这样配套更省钱!说起豆腐干、香干在南方地区还是比较受欢迎的,但一般都是家庭作坊式手工生产,产量低,生产效率得不到更好的提高,在这里给大家推荐一款自动化的豆腐干机生产线: 宏大科创全自动豆腐干机这个可以是在宏大科创厂家现场看到演示操作…...

    2024/5/8 17:22:48
  13. 安装rehat7.4的时候跳出未知错误,求大佬救我

    ...

    2024/5/5 19:10:21
  14. 创建远程服务器虚拟环境、pycharm连接

    1、创建远程服务器虚拟环境 首先进入需要创建环境的目录,一般是在anaconda下envs里。 指定python版本,继承系统第三方包的命令 virtualenv -p /home/yyang1/anaconda3/bin/python --system-site-packages dxcenv代码中这个部分/home/yyang1/anaconda3/bin/python是指定python…...

    2024/5/5 19:10:17
  15. 婚纱照中的好身材是怎样炼成的?除了减肥你还可以做这些

    原标题:婚纱照中的好身材是怎样炼成的?除了减肥你还可以做这些穿衣显瘦想必是每个女孩子的梦想,尤其是在将要拍摄婚纱照的时候,更希望自己能以最美的姿态穿上那件洁白的婚纱。 但是事实未尝尽如人意,那么怎么才能完成自己的心愿,拍出美美的婚纱照呢?快来看看北京婚纱摄…...

    2024/5/5 19:10:14
  16. 赵丽颖背后最强大的男人,当众牵手无惧闹绯闻,狗仔都不敢说什么

    原标题:赵丽颖背后最强大的男人,当众牵手无惧闹绯闻,狗仔都不敢说什么赵丽颖现在的人气是越来越厉害了,只要一说颖宝,大家就会马上想到他的那部红遍大江南北的《花千骨》,还有后来的这部《楚乔传》,丽颖的剧不仅高产还高质量,真正称得上是一个演员。 请点击输入图片描述…...

    2024/4/13 21:10:38
  17. 【android编程】 第六讲-Android菜单实践题

    【android编程】 第六讲-Android菜单实践题 笔记链接:https://blog.csdn.net/xbean1028/article/details/104797732 文章目录【android编程】 第六讲-Android菜单实践题1. 带子菜单的选项菜单练习1. 效果展示2. menu\menu_main.xml2. MainActivity.java2. 上下文菜单(长按)练…...

    2024/5/5 19:10:09
  18. 鲜榨果汁|本周日,Juicy Girl有什么新动作呢?

    原标题:鲜榨果汁|本周日,Juicy Girl有什么新动作呢?4月23日 本周日 是什么日子呢 是Juicy Girl代言的潮牌 NEWAND MIU 首家形象店 在广州开业的日子哦 同时也是 JuicyGirl 粉丝见面日 (是个重大日子呢!!!) 本周日中午11:30 JuicyGirl-小温Vanice 将出席NEW…...

    2024/5/5 19:10:05
  19. 数据结构与算法复习二——递归与回溯

    一.递归 递归:函数调用本身 把大规模的问题不断变小,再进行推导 经典问题:汉诺塔 写法结构总结: function fn(n){ //第一步:判断输入或者状态是否非法 if(input/state is invalid){ return; } //第二步:判断递归是否应当结束 if(match condition){ return some value; } …...

    2024/5/5 19:10:01
  20. ofd文件解密并获取文件内容

    OFD文件解密并获取文件中数据如下:下面代码中需要引用两个jar包(commons-compress-1.10.jar invoice-adjunct-1.0.0.jar)import com.suwell.invoice.Utils; import entry.GoodsInfo; import entry.LayoutFile; import org.apache.commons.compress.utils.IOUtils; import …...

    2024/5/5 19:09:57

最新文章

  1. SQL优化详解

    目录 插入数据 insert的优化&#xff08;少量数据&#xff09; 批量插入 手动事务提交 主键顺序插入 插入大量数据 主键优化 数据组织方式&#xff1a; 页分裂&#xff1a; 主键顺序插入的方式&#xff1a; 主键乱序插入&#xff1a; 页合并&#xff1a; 主键设计…...

    2024/5/9 21:23:53
  2. 梯度消失和梯度爆炸的一些处理方法

    在这里是记录一下梯度消失或梯度爆炸的一些处理技巧。全当学习总结了如有错误还请留言&#xff0c;在此感激不尽。 权重和梯度的更新公式如下&#xff1a; w w − η ⋅ ∇ w w w - \eta \cdot \nabla w ww−η⋅∇w 个人通俗的理解梯度消失就是网络模型在反向求导的时候出…...

    2024/5/9 21:23:04
  3. 《前端防坑》- JS基础 - 你觉得typeof nullValue === null 么?

    问题 JS原始类型有6种Undefined, Null, Number, String, Boolean, Symbol共6种。 在对原始类型使用typeof进行判断时, typeof stringValue string typeof numberValue number 如果一个变量(nullValue)的值为null&#xff0c;那么typeof nullValue "?" const u …...

    2024/5/9 17:21:25
  4. Unity核心学习

    目录 认识模型的制作流程模型的制作过程 2D相关图片导入设置图片导入概述纹理类型设置纹理形状设置纹理高级设置纹理平铺拉伸设置纹理平台打包相关设置 SpriteSprite Editor——Single图片编辑Sprite Editor——Multiple图片编辑Sprite Editor——Polygon图片编辑SpriteRendere…...

    2024/5/8 20:10:06
  5. 【外汇早评】美通胀数据走低,美元调整

    原标题:【外汇早评】美通胀数据走低,美元调整昨日美国方面公布了新一期的核心PCE物价指数数据,同比增长1.6%,低于前值和预期值的1.7%,距离美联储的通胀目标2%继续走低,通胀压力较低,且此前美国一季度GDP初值中的消费部分下滑明显,因此市场对美联储后续更可能降息的政策…...

    2024/5/8 6:01:22
  6. 【原油贵金属周评】原油多头拥挤,价格调整

    原标题:【原油贵金属周评】原油多头拥挤,价格调整本周国际劳动节,我们喜迎四天假期,但是整个金融市场确实流动性充沛,大事频发,各个商品波动剧烈。美国方面,在本周四凌晨公布5月份的利率决议和新闻发布会,维持联邦基金利率在2.25%-2.50%不变,符合市场预期。同时美联储…...

    2024/5/9 15:10:32
  7. 【外汇周评】靓丽非农不及疲软通胀影响

    原标题:【外汇周评】靓丽非农不及疲软通胀影响在刚结束的周五,美国方面公布了新一期的非农就业数据,大幅好于前值和预期,新增就业重新回到20万以上。具体数据: 美国4月非农就业人口变动 26.3万人,预期 19万人,前值 19.6万人。 美国4月失业率 3.6%,预期 3.8%,前值 3…...

    2024/5/4 23:54:56
  8. 【原油贵金属早评】库存继续增加,油价收跌

    原标题:【原油贵金属早评】库存继续增加,油价收跌周三清晨公布美国当周API原油库存数据,上周原油库存增加281万桶至4.692亿桶,增幅超过预期的74.4万桶。且有消息人士称,沙特阿美据悉将于6月向亚洲炼油厂额外出售更多原油,印度炼油商预计将每日获得至多20万桶的额外原油供…...

    2024/5/9 4:20:59
  9. 【外汇早评】日本央行会议纪要不改日元强势

    原标题:【外汇早评】日本央行会议纪要不改日元强势近两日日元大幅走强与近期市场风险情绪上升,避险资金回流日元有关,也与前一段时间的美日贸易谈判给日本缓冲期,日本方面对汇率问题也避免继续贬值有关。虽然今日早间日本央行公布的利率会议纪要仍然是支持宽松政策,但这符…...

    2024/5/4 23:54:56
  10. 【原油贵金属早评】欧佩克稳定市场,填补伊朗问题的影响

    原标题:【原油贵金属早评】欧佩克稳定市场,填补伊朗问题的影响近日伊朗局势升温,导致市场担忧影响原油供给,油价试图反弹。此时OPEC表态稳定市场。据消息人士透露,沙特6月石油出口料将低于700万桶/日,沙特已经收到石油消费国提出的6月份扩大出口的“适度要求”,沙特将满…...

    2024/5/4 23:55:05
  11. 【外汇早评】美欲与伊朗重谈协议

    原标题:【外汇早评】美欲与伊朗重谈协议美国对伊朗的制裁遭到伊朗的抗议,昨日伊朗方面提出将部分退出伊核协议。而此行为又遭到欧洲方面对伊朗的谴责和警告,伊朗外长昨日回应称,欧洲国家履行它们的义务,伊核协议就能保证存续。据传闻伊朗的导弹已经对准了以色列和美国的航…...

    2024/5/4 23:54:56
  12. 【原油贵金属早评】波动率飙升,市场情绪动荡

    原标题:【原油贵金属早评】波动率飙升,市场情绪动荡因中美贸易谈判不安情绪影响,金融市场各资产品种出现明显的波动。随着美国与中方开启第十一轮谈判之际,美国按照既定计划向中国2000亿商品征收25%的关税,市场情绪有所平复,已经开始接受这一事实。虽然波动率-恐慌指数VI…...

    2024/5/7 11:36:39
  13. 【原油贵金属周评】伊朗局势升温,黄金多头跃跃欲试

    原标题:【原油贵金属周评】伊朗局势升温,黄金多头跃跃欲试美国和伊朗的局势继续升温,市场风险情绪上升,避险黄金有向上突破阻力的迹象。原油方面稍显平稳,近期美国和OPEC加大供给及市场需求回落的影响,伊朗局势并未推升油价走强。近期中美贸易谈判摩擦再度升级,美国对中…...

    2024/5/4 23:54:56
  14. 【原油贵金属早评】市场情绪继续恶化,黄金上破

    原标题:【原油贵金属早评】市场情绪继续恶化,黄金上破周初中国针对于美国加征关税的进行的反制措施引发市场情绪的大幅波动,人民币汇率出现大幅的贬值动能,金融市场受到非常明显的冲击。尤其是波动率起来之后,对于股市的表现尤其不安。隔夜美国股市出现明显的下行走势,这…...

    2024/5/6 1:40:42
  15. 【外汇早评】美伊僵持,风险情绪继续升温

    原标题:【外汇早评】美伊僵持,风险情绪继续升温昨日沙特两艘油轮再次发生爆炸事件,导致波斯湾局势进一步恶化,市场担忧美伊可能会出现摩擦生火,避险品种获得支撑,黄金和日元大幅走强。美指受中美贸易问题影响而在低位震荡。继5月12日,四艘商船在阿联酋领海附近的阿曼湾、…...

    2024/5/4 23:54:56
  16. 【原油贵金属早评】贸易冲突导致需求低迷,油价弱势

    原标题:【原油贵金属早评】贸易冲突导致需求低迷,油价弱势近日虽然伊朗局势升温,中东地区几起油船被袭击事件影响,但油价并未走高,而是出于调整结构中。由于市场预期局势失控的可能性较低,而中美贸易问题导致的全球经济衰退风险更大,需求会持续低迷,因此油价调整压力较…...

    2024/5/8 20:48:49
  17. 氧生福地 玩美北湖(上)——为时光守候两千年

    原标题:氧生福地 玩美北湖(上)——为时光守候两千年一次说走就走的旅行,只有一张高铁票的距离~ 所以,湖南郴州,我来了~ 从广州南站出发,一个半小时就到达郴州西站了。在动车上,同时改票的南风兄和我居然被分到了一个车厢,所以一路非常愉快地聊了过来。 挺好,最起…...

    2024/5/7 9:26:26
  18. 氧生福地 玩美北湖(中)——永春梯田里的美与鲜

    原标题:氧生福地 玩美北湖(中)——永春梯田里的美与鲜一觉醒来,因为大家太爱“美”照,在柳毅山庄去寻找龙女而错过了早餐时间。近十点,向导坏坏还是带着饥肠辘辘的我们去吃郴州最富有盛名的“鱼头粉”。说这是“十二分推荐”,到郴州必吃的美食之一。 哇塞!那个味美香甜…...

    2024/5/4 23:54:56
  19. 氧生福地 玩美北湖(下)——奔跑吧骚年!

    原标题:氧生福地 玩美北湖(下)——奔跑吧骚年!让我们红尘做伴 活得潇潇洒洒 策马奔腾共享人世繁华 对酒当歌唱出心中喜悦 轰轰烈烈把握青春年华 让我们红尘做伴 活得潇潇洒洒 策马奔腾共享人世繁华 对酒当歌唱出心中喜悦 轰轰烈烈把握青春年华 啊……啊……啊 两…...

    2024/5/8 19:33:07
  20. 扒开伪装医用面膜,翻六倍价格宰客,小姐姐注意了!

    原标题:扒开伪装医用面膜,翻六倍价格宰客,小姐姐注意了!扒开伪装医用面膜,翻六倍价格宰客!当行业里的某一品项火爆了,就会有很多商家蹭热度,装逼忽悠,最近火爆朋友圈的医用面膜,被沾上了污点,到底怎么回事呢? “比普通面膜安全、效果好!痘痘、痘印、敏感肌都能用…...

    2024/5/5 8:13:33
  21. 「发现」铁皮石斛仙草之神奇功效用于医用面膜

    原标题:「发现」铁皮石斛仙草之神奇功效用于医用面膜丽彦妆铁皮石斛医用面膜|石斛多糖无菌修护补水贴19大优势: 1、铁皮石斛:自唐宋以来,一直被列为皇室贡品,铁皮石斛生于海拔1600米的悬崖峭壁之上,繁殖力差,产量极低,所以古代仅供皇室、贵族享用 2、铁皮石斛自古民间…...

    2024/5/8 20:38:49
  22. 丽彦妆\医用面膜\冷敷贴轻奢医学护肤引导者

    原标题:丽彦妆\医用面膜\冷敷贴轻奢医学护肤引导者【公司简介】 广州华彬企业隶属香港华彬集团有限公司,专注美业21年,其旗下品牌: 「圣茵美」私密荷尔蒙抗衰,产后修复 「圣仪轩」私密荷尔蒙抗衰,产后修复 「花茵莳」私密荷尔蒙抗衰,产后修复 「丽彦妆」专注医学护…...

    2024/5/4 23:54:58
  23. 广州械字号面膜生产厂家OEM/ODM4项须知!

    原标题:广州械字号面膜生产厂家OEM/ODM4项须知!广州械字号面膜生产厂家OEM/ODM流程及注意事项解读: 械字号医用面膜,其实在我国并没有严格的定义,通常我们说的医美面膜指的应该是一种「医用敷料」,也就是说,医用面膜其实算作「医疗器械」的一种,又称「医用冷敷贴」。 …...

    2024/5/9 7:32:17
  24. 械字号医用眼膜缓解用眼过度到底有无作用?

    原标题:械字号医用眼膜缓解用眼过度到底有无作用?医用眼膜/械字号眼膜/医用冷敷眼贴 凝胶层为亲水高分子材料,含70%以上的水分。体表皮肤温度传导到本产品的凝胶层,热量被凝胶内水分子吸收,通过水分的蒸发带走大量的热量,可迅速地降低体表皮肤局部温度,减轻局部皮肤的灼…...

    2024/5/9 17:11:10
  25. 配置失败还原请勿关闭计算机,电脑开机屏幕上面显示,配置失败还原更改 请勿关闭计算机 开不了机 这个问题怎么办...

    解析如下&#xff1a;1、长按电脑电源键直至关机&#xff0c;然后再按一次电源健重启电脑&#xff0c;按F8健进入安全模式2、安全模式下进入Windows系统桌面后&#xff0c;按住“winR”打开运行窗口&#xff0c;输入“services.msc”打开服务设置3、在服务界面&#xff0c;选中…...

    2022/11/19 21:17:18
  26. 错误使用 reshape要执行 RESHAPE,请勿更改元素数目。

    %读入6幅图像&#xff08;每一幅图像的大小是564*564&#xff09; f1 imread(WashingtonDC_Band1_564.tif); subplot(3,2,1),imshow(f1); f2 imread(WashingtonDC_Band2_564.tif); subplot(3,2,2),imshow(f2); f3 imread(WashingtonDC_Band3_564.tif); subplot(3,2,3),imsho…...

    2022/11/19 21:17:16
  27. 配置 已完成 请勿关闭计算机,win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机...

    win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机”问题的解决方法在win7系统关机时如果有升级系统的或者其他需要会直接进入一个 等待界面&#xff0c;在等待界面中我们需要等待操作结束才能关机&#xff0c;虽然这比较麻烦&#xff0c;但是对系统进行配置和升级…...

    2022/11/19 21:17:15
  28. 台式电脑显示配置100%请勿关闭计算机,“准备配置windows 请勿关闭计算机”的解决方法...

    有不少用户在重装Win7系统或更新系统后会遇到“准备配置windows&#xff0c;请勿关闭计算机”的提示&#xff0c;要过很久才能进入系统&#xff0c;有的用户甚至几个小时也无法进入&#xff0c;下面就教大家这个问题的解决方法。第一种方法&#xff1a;我们首先在左下角的“开始…...

    2022/11/19 21:17:14
  29. win7 正在配置 请勿关闭计算机,怎么办Win7开机显示正在配置Windows Update请勿关机...

    置信有很多用户都跟小编一样遇到过这样的问题&#xff0c;电脑时发现开机屏幕显现“正在配置Windows Update&#xff0c;请勿关机”(如下图所示)&#xff0c;而且还需求等大约5分钟才干进入系统。这是怎样回事呢&#xff1f;一切都是正常操作的&#xff0c;为什么开时机呈现“正…...

    2022/11/19 21:17:13
  30. 准备配置windows 请勿关闭计算机 蓝屏,Win7开机总是出现提示“配置Windows请勿关机”...

    Win7系统开机启动时总是出现“配置Windows请勿关机”的提示&#xff0c;没过几秒后电脑自动重启&#xff0c;每次开机都这样无法进入系统&#xff0c;此时碰到这种现象的用户就可以使用以下5种方法解决问题。方法一&#xff1a;开机按下F8&#xff0c;在出现的Windows高级启动选…...

    2022/11/19 21:17:12
  31. 准备windows请勿关闭计算机要多久,windows10系统提示正在准备windows请勿关闭计算机怎么办...

    有不少windows10系统用户反映说碰到这样一个情况&#xff0c;就是电脑提示正在准备windows请勿关闭计算机&#xff0c;碰到这样的问题该怎么解决呢&#xff0c;现在小编就给大家分享一下windows10系统提示正在准备windows请勿关闭计算机的具体第一种方法&#xff1a;1、2、依次…...

    2022/11/19 21:17:11
  32. 配置 已完成 请勿关闭计算机,win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机”的解决方法...

    今天和大家分享一下win7系统重装了Win7旗舰版系统后&#xff0c;每次关机的时候桌面上都会显示一个“配置Windows Update的界面&#xff0c;提示请勿关闭计算机”&#xff0c;每次停留好几分钟才能正常关机&#xff0c;导致什么情况引起的呢&#xff1f;出现配置Windows Update…...

    2022/11/19 21:17:10
  33. 电脑桌面一直是清理请关闭计算机,windows7一直卡在清理 请勿关闭计算机-win7清理请勿关机,win7配置更新35%不动...

    只能是等着&#xff0c;别无他法。说是卡着如果你看硬盘灯应该在读写。如果从 Win 10 无法正常回滚&#xff0c;只能是考虑备份数据后重装系统了。解决来方案一&#xff1a;管理员运行cmd&#xff1a;net stop WuAuServcd %windir%ren SoftwareDistribution SDoldnet start WuA…...

    2022/11/19 21:17:09
  34. 计算机配置更新不起,电脑提示“配置Windows Update请勿关闭计算机”怎么办?

    原标题&#xff1a;电脑提示“配置Windows Update请勿关闭计算机”怎么办&#xff1f;win7系统中在开机与关闭的时候总是显示“配置windows update请勿关闭计算机”相信有不少朋友都曾遇到过一次两次还能忍但经常遇到就叫人感到心烦了遇到这种问题怎么办呢&#xff1f;一般的方…...

    2022/11/19 21:17:08
  35. 计算机正在配置无法关机,关机提示 windows7 正在配置windows 请勿关闭计算机 ,然后等了一晚上也没有关掉。现在电脑无法正常关机...

    关机提示 windows7 正在配置windows 请勿关闭计算机 &#xff0c;然后等了一晚上也没有关掉。现在电脑无法正常关机以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容&#xff0c;让我们赶快一起来看一下吧&#xff01;关机提示 windows7 正在配…...

    2022/11/19 21:17:05
  36. 钉钉提示请勿通过开发者调试模式_钉钉请勿通过开发者调试模式是真的吗好不好用...

    钉钉请勿通过开发者调试模式是真的吗好不好用 更新时间:2020-04-20 22:24:19 浏览次数:729次 区域: 南阳 > 卧龙 列举网提醒您:为保障您的权益,请不要提前支付任何费用! 虚拟位置外设器!!轨迹模拟&虚拟位置外设神器 专业用于:钉钉,外勤365,红圈通,企业微信和…...

    2022/11/19 21:17:05
  37. 配置失败还原请勿关闭计算机怎么办,win7系统出现“配置windows update失败 还原更改 请勿关闭计算机”,长时间没反应,无法进入系统的解决方案...

    前几天班里有位学生电脑(windows 7系统)出问题了&#xff0c;具体表现是开机时一直停留在“配置windows update失败 还原更改 请勿关闭计算机”这个界面&#xff0c;长时间没反应&#xff0c;无法进入系统。这个问题原来帮其他同学也解决过&#xff0c;网上搜了不少资料&#x…...

    2022/11/19 21:17:04
  38. 一个电脑无法关闭计算机你应该怎么办,电脑显示“清理请勿关闭计算机”怎么办?...

    本文为你提供了3个有效解决电脑显示“清理请勿关闭计算机”问题的方法&#xff0c;并在最后教给你1种保护系统安全的好方法&#xff0c;一起来看看&#xff01;电脑出现“清理请勿关闭计算机”在Windows 7(SP1)和Windows Server 2008 R2 SP1中&#xff0c;添加了1个新功能在“磁…...

    2022/11/19 21:17:03
  39. 请勿关闭计算机还原更改要多久,电脑显示:配置windows更新失败,正在还原更改,请勿关闭计算机怎么办...

    许多用户在长期不使用电脑的时候&#xff0c;开启电脑发现电脑显示&#xff1a;配置windows更新失败&#xff0c;正在还原更改&#xff0c;请勿关闭计算机。。.这要怎么办呢&#xff1f;下面小编就带着大家一起看看吧&#xff01;如果能够正常进入系统&#xff0c;建议您暂时移…...

    2022/11/19 21:17:02
  40. 还原更改请勿关闭计算机 要多久,配置windows update失败 还原更改 请勿关闭计算机,电脑开机后一直显示以...

    配置windows update失败 还原更改 请勿关闭计算机&#xff0c;电脑开机后一直显示以以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容&#xff0c;让我们赶快一起来看一下吧&#xff01;配置windows update失败 还原更改 请勿关闭计算机&#x…...

    2022/11/19 21:17:01
  41. 电脑配置中请勿关闭计算机怎么办,准备配置windows请勿关闭计算机一直显示怎么办【图解】...

    不知道大家有没有遇到过这样的一个问题&#xff0c;就是我们的win7系统在关机的时候&#xff0c;总是喜欢显示“准备配置windows&#xff0c;请勿关机”这样的一个页面&#xff0c;没有什么大碍&#xff0c;但是如果一直等着的话就要两个小时甚至更久都关不了机&#xff0c;非常…...

    2022/11/19 21:17:00
  42. 正在准备配置请勿关闭计算机,正在准备配置windows请勿关闭计算机时间长了解决教程...

    当电脑出现正在准备配置windows请勿关闭计算机时&#xff0c;一般是您正对windows进行升级&#xff0c;但是这个要是长时间没有反应&#xff0c;我们不能再傻等下去了。可能是电脑出了别的问题了&#xff0c;来看看教程的说法。正在准备配置windows请勿关闭计算机时间长了方法一…...

    2022/11/19 21:16:59
  43. 配置失败还原请勿关闭计算机,配置Windows Update失败,还原更改请勿关闭计算机...

    我们使用电脑的过程中有时会遇到这种情况&#xff0c;当我们打开电脑之后&#xff0c;发现一直停留在一个界面&#xff1a;“配置Windows Update失败&#xff0c;还原更改请勿关闭计算机”&#xff0c;等了许久还是无法进入系统。如果我们遇到此类问题应该如何解决呢&#xff0…...

    2022/11/19 21:16:58
  44. 如何在iPhone上关闭“请勿打扰”

    Apple’s “Do Not Disturb While Driving” is a potentially lifesaving iPhone feature, but it doesn’t always turn on automatically at the appropriate time. For example, you might be a passenger in a moving car, but your iPhone may think you’re the one dri…...

    2022/11/19 21:16:57