全栈神器 : ElasticSearch基础实战
目录
- 一、ElasticSearch是什么
- 二、为什么前端推荐使用ElasticSearch
- 快速上手
- API适配
- 三、如何使用ElasticSearch
- 安装和环境
- 索引&类型&文档
- 四、CURL索引:
- 新增索引:
- 纯新增
- 被动新增
- mapping支持的类型
- 修改索引:
- 索引不存在文档
- 索引存在文档
- 查询所有索引:
- 删除索引:
- 五、CURL文档
- 创建文档
- 修改文档
- 删除文档:
- 查询文档
- 六、文档的查询
- 按照查询语法分类
- 轻量查询的例子
- 表达式查询的例子
- 按照性能分类
- 按照语法分类
- 打分制查询
- 过滤器查询
- 普通查询语法
- `match_all`
- `match`
- `multi_match`
- `range`
- `term`
- `terms `
- ` exists `查询和` missing` 查询
- 过滤器查询语法
- bool 组合过滤器
- 七、文档的聚合
- 桶的概念
- 指标的概念
- 桶和指标的组合
- 实战
- 范围限定的聚合
- 八、总结
一、ElasticSearch是什么
先看下官网的解释:
Elasticsearch 是一个分布式的、开源的搜索分析引擎,支持各种数据类型,包括文本、数字、地理、结构化、非结构化。
Elasticsearch 是基于 Apache Lucene 的。
Elasticsearch 因其简单的 REST API、分布式特性、告诉、可扩展而闻名。
Elasticsearch 是 Elastic 产品栈的核心,Elastic 产品栈是个开源工具集合,用于数据接收、存储、分析、可视化。
废话一堆,我总结一下:
- 1、
elasticsearch
是一个免费、开源的软件 - 2、
elasticsearch
是一个数据库 - 3、
elasticsearch
是一个搜索引擎 - 4、
elasticsearch
是一个后台服务,使用简单的REST API
调用,提供丰富多样的数据处理能力
二、为什么前端推荐使用ElasticSearch
快速上手
作为前端开发,我们都知道,要开发应用,数据服务是我们永远依赖后台的地方。
对于接口层,自己去写java
,学springboot
,学structs
从0开始学习似乎不太现实。在这个快节奏的软件开发时代,快速学习,快速上手,快速做应用才是王道。试想一下,让你1天之内搭建一个服务器+数据库,如果没有一定的基础,你可以做到吗?我敢说,就连熟悉java
开发的后台同事也不能保证。
所以,ElasticSearch
来了,只需要官网下载一个包,本地使用bat
服务启动,一个现成的后台服务+数据库就完成了。
API适配
传统前端BS
架构,基本都是以Rest
接口方式与后台交互。
fetch("https://leetcode-solution.cn", {method: "POST",headers: {"Content-Type": "application/json",},body: JSON.stringify({question_id: "1",lang: "javascript",code: "console.log(1)",}),
}).then((res) => {console.log(res);
});
ElasticSearch
,完全遵循Rest
接口规范,一个根据学生ID查询学生的例子:
fetch("https:192.168.0.1:9200/class/students", {method: "POST",headers: {"Content-Type": "application/json",},body: JSON.stringify({"query": {"match_phrase": {"studentId.keyword": "12345"}}}),
}).then((res) => {console.log(res);
});
可见。我们只需要修改Body
体内的查询语法,就可以做到不需要后台接口封装,直接调用,对于简单的curl应用,甚至可以做到直接替换。
三、如何使用ElasticSearch
安装和环境
官网下载elasticSearch
和kibana
(可视化工具),进入bin
目录,直接执行批处理脚本即可。本文不再赘述。本文es版本和安装地址如下:
项目 | 版本 |
---|---|
操作系统 | windows |
ElasticSearch | v6.5.3 |
Kibana | v6.5.3 |
如果windows
下安装有问题,可以参考我的这篇博客
索引&类型&文档
大家如果用过sql
。那么index
(索引)就像sql
中的库,type
(类型)就像sql
中的表,document
(文档)就像sql
中的记录。
传统的一个学生表,是如下对应结构:
- 学生表 –
student
- 姓名、学号、性别、爱好 –
document
可是es用index+type
表达上述的Table
概念,应该如下数据结构:
- 学生表 –
class/student
- 姓名、学号、性别、爱好 –
document
是不是有点混淆?
没错,elasticSearch
这样设计的初衷是为了提高集群管理的效率和能力,但是对于我们以传统表+记录的模式理解来说,是有点牵强。
所以,elasticSearch也做出了改进,在7.0.0开始,正式废除type。
我们今天使用的版本是6.5.4
为了不混淆大家,我们统一约定,一个索引只能有一个类型,索引和类型取一样的名称,后续我们的索引指的就是表。对应关系如下
- 学生表 –
student/student
- 姓名、学号、性别、爱好 –
document
四、CURL索引:
新增索引:
纯新增
被动新增
es会在很多情况下为我们新增索引。在系统中没有student表的情况下,执行例如这样的代码
PUT/students/students/1
{
}
注意。上面的代码,会创建一个id为1,但是属性为空的学生。由于没有students表,所以,es会自动为我们创建一个表,并向里面添加一个空文档:
我们查询一下这个id为1的学生:
GET /students/students/_search
{"query": {"match_all": {}}
}
具体的语法我们可以后面再看。这个语法是查询表中所有的文档:
可以看到我们的id为1的学生创建完成了。可是_source字段中没有属性。
表需要有字段,我怎么表达表的字段?例如学生有姓名、年龄等字段。这时候我们就需要引入mapping的概念:
查询表结构:
GET /students/students/_mapping
返回如下:
我的students索引中包含students类型,文档为空,所以字段也为空。接下来我们尝试再添加一个有属性的学生:
POST /students/students/2
{"age":18,"name":"李云迪","birthday":"1992-09-08"
}
ok。我们继续查所有的学生:
这时候记录就有了。我们来看下mapping如果变化:
我们的students索引自动创建了3个属性:age、birthday、name属性,并且自动推断了类型!
所以mapping默认是可以动态拓展的,新增一条记录,es就会根据你的记录动态添加表字段。
所以,如果我想创建一张属性固定不变的索引,就必须在创建的时候指定mapping:
创建包含age和birthday的techers表:
PUT /teachers/teachers/mapping
{"teachers" : {"mappings" : {"dynamic" : "strict","teachers" : {"properties" : {"age" : {"type" : "long"},"birthday" : {"type" : "date"}}}}}
}
注意 "dynamic" : "strict"
这个表示我的属性禁止拓展,这时候我们向techers表中添加如下记录:
POST /teachers/techers
{"name":"李云迪"
}
自然是放不进去:
mapping支持的类型
Elasticsearch 支持如下简单域类型:
- 字符串:
string
- 整数 :
byte
,short
,integer
,long
- 浮点数:
float
,double
- 布尔型:
boolean
- 日期:
date
还有复杂类型:
binary
二进制array
数组类型range datatype
数据范围类型,一个字段表示一个范围integer_range
float_range
double_range
*date_range
- i
p_range
Nested datatype
嵌套数据类型,用于关联查询。Geo datatypes
地图数据类型。geo_point
地图坐标;存储经纬度。geo_shape datatype
数据类型方便了对任意地理形状(如矩形和多边形)进行索引和搜索。当正在索引的数据或正在执行的查询包含除了点以外的形状时应该使用它。
修改索引:
修改索引,在索引中存在数据时会比较复杂,我们这里暂时不讨论。
索引不存在文档
这种情况下随便改。都没问题
PUT /teachers/teachers/mapping
{"teachers" : {"mappings" : {"dynamic" : "strict","teachers" : {"properties" : {"age" : {"type" : "long"},"birthday" : {"type" : "date"}}}}}
}
索引存在文档
这种情况下,如果修改已存在字段会被拒绝。操作比较复杂,方法后面会讨论。
查询所有索引:
GET /_cat/indices
返回:
删除索引:
DELETE /teachers/
就是这么简单
返回:
五、CURL文档
创建文档
刚才一节已经说明了创建文档的语法:
POST /students/students/2
{"age":18,"name":"李云迪","birthday":"1992-09-08"
}
在studetents后面的2 表示的就是文档的唯一id。我也可以不带这个Id,这时候es会为我们随机生成一个:
POST /students/students/
{"age":18,"name":"李云迪2","birthday":"1992-09-08"
}
返回:
修改文档
我需要把李云迪的年龄改为38:
POST /students/students/1
{"age":38,"name":"李云迪","birthday":"1992-09-08"
}
1 为第一条记录的id,注意,要带上所有的属性。
删除文档:
DELETE /students/students/1
这样就行了。
查询文档
查询文档我们会在下面作为重点讲解。
六、文档的查询
按照查询语法分类
传统文档的查询,我们一般是通过SQL语句,最常见的如下:
Select * from students
而我们的查询,是以服务形式的查询,与数据库完全不同。ElasticSearch按照查询语法种类,分为轻量查询和表达式查询。
轻量查询的例子
//--索姓氏为 ``Smith`` 的雇员
GET /employee/employee/_search?q=last_name:Smith
可以在请求url中评价查询语法。但是这种方式受到url拼接的限制,只能进行比较简单的查询。
表达式查询的例子
Query-string 搜索通过命令非常方便地进行临时性的即席搜索 ,但它有自身的局限性(参见 轻量 搜索 )。Elasticsearch 提供一个丰富灵活的查询语言叫做 查询表达式 , 它支持构建更加复杂和健壮的查询。
领域特定语言 (DSL), 使用 JSON 构造了一个请求。我们可以像这样重写之前的查询所有名为 Smith 的搜索 :
GET /megacorp/employee/_search
{"query" : {"match" : {"last_name" : "Smith"}}
}
返回结果与之前的查询一样,但还是可以看到有一些变化。其中之一是,不再使用 query-string 参数,而是一个请求体替代。这个请求使用 JSON 构造,并使用了一个 match 查询(属于查询类型之一,后面将继续介绍)。
按照性能分类
按照查询的性能,我们可以把查询分为query查询(打分制查询)和filter(过滤器查询)。具体的语法我们不用纠结,后面会提到。我们先来看普通查询:
按照语法分类
打分制查询
GET /megacorp/employee/_search
{"query" : {"match" : {"about" : "rock climbing"}}
}
返回所有喜欢攀岩的员工:
注意,这里每条查询的记录,都会有一个评分。es
本身就是全文检索搜索引擎,他会根据查询条件对每个文档进行评分。
Elasticsearch
默认按照相关性得分排序,即每个文档跟查询的匹配程度。第一个最高得分的结果很明显:John Smith
的 about
属性清楚地写着 “rock climbing” 。
但为什么Jane Smith
也作为结果返回了呢?原因是她的about
属性里提到了 “rock” 。因为只有 “rock” 而没有 “climbing” ,所以她的相关性得分低于 John
的。
这是一个很好的案例,阐明了 Elasticsearch
如何 在 全文属性上搜索并返回相关性最强的结果。Elasticsearch
中的 相关性 概念非常重要,也是完全区别于传统关系型数据库的一个概念,数据库中的一条记录要么匹配要么不匹配。
可以看到,普通查询(打分制查询主要用于模糊匹配),应用于全文检索等搜索引擎。
过滤器查询
当进行精确值查找时, 我们会使用过滤器(filters
)。过滤器很重要,因为它们执行速度非常快,不会计算相关度(直接跳过了整个评分阶段)而且很容易被缓存。我们会在本章后面的 过滤器缓存 中讨论过滤器的性能优势,不过现在只要记住:请尽可能多的使用过滤式查询。
基本语法:
GET /students/students/_search
{"query" : {"filter" : {//--5种查询}}
}
以一个返回值为例:
"hits" : [{"_index" : "my_store","_type" : "products","_id" : "2","_score" : 1.0, "_source" : {"price" : 20,"productID" : "KDKE-B-9947-#kL5"}}
]
查询置于 filter 语句内不进行评分或相关度的计算,所以所有的结果都会返回一个默认评分 1 。
所以过滤器一般用于精确查找,不需要关注文档的相关度,所以性能高于普通查询。
普通查询语法
GET /{index}/{type}/_search
{"query": {"match_all": { } ////"match":{} //--模糊匹配//"multi_match":{} //--多值模糊匹配//"match_phrase":{} //--短语匹配//"range":{} //--范围匹配//"term":{} //--精确匹配//"terms":{} //--多词精确匹配//"exists":{} //--存在性匹配//"missing":{} //--缺省值匹配//"bool":{} //--组合匹配 这是一个过滤器!}
}
match_all
match_all 查询简单的匹配所有文档。在没有指定查询方式时,它是默认的查询。
match
无论你在任何字段上进行的是全文搜索还是精确查询,match 查询是你可用的标准查询。
如果你在一个全文字段上使用 match 查询,在执行查询前,它将用正确的分析器去分析查询字符串:
{ "match": { "tweet": "About Search" }}
如果在一个精确值的字段上使用它,例如数字、日期、布尔或者一个 not_analyzed 字符串字段,那么它将会精确匹配给定的值:
{ "match": { "age": 26 }}
{ "match": { "date": "2014-09-01" }}
{ "match": { "public": true }}
{ "match": { "tag": "full_text" }}
multi_match
multi_match
查询可以在多个字段上执行相同的 match 查询:
{"multi_match": {"query": "full text search","fields": [ "title", "body" ]}
}
range
{"range": {"age": {"gte": 20,"lt": 30}}
}
- gt 大于
- gte 大于等于
- lt 小于
- lte 小于等于
term
term
查询被用于精确值匹配,这些精确值可能是数字、时间、布尔或者那些 not_analyzed
的字符串:
{ "term": { "age": 26 }}
{ "term": { "date": "2014-09-01" }}
{ "term": { "public": true }}
{ "term": { "tag": "full_text" }}
terms
terms
查询和term
查询一样,但它允许你指定多值进行匹配。如果这个字段包含了指定值中的任何一个值,那么这个文档满足条件:
{ "terms": { "tag": [ "search", "full_text", "nosql" ] }}
和term
查询一样,terms
查询对于输入的文本不分析。它查询那些精确匹配的值(包括在大小写、重音、空格等方面的差异)。
exists
查询和missing
查询
exists
查询和 missing
查询被用于查找那些指定字段中有值 (exists
) 或无值 (missing
) 的文档。这与SQL
中的 IS_NULL (missing)
和 NOT IS_NULL (exists)
在本质上具有共性
{"exists": {"field": "title"}
}
过滤器查询语法
GET /{index}/{type}/_search
{"query": {{"filter":{//"range":{} //--范围匹配//"term":{} //--精确匹配//"terms":{} //--多词精确匹配//"exists":{} //--存在性匹配//"missing":{} //--缺省值匹配//"bool":{} //--组合过滤器}}}
}
或者:
GET /{index}/{type}/_search
{"query": {{"bool":{//--bool语法}}}
}
可以这么理解。query下面可以放过滤器,filter是普通过滤器,bool是组合过滤器。
关于range
、term
、terms
、exists
、missing
与上面普通查询意义一致,对于bool
过滤器,详细说一下。
bool 组合过滤器
注意,query
里面放嵌套过滤器,就需要使用bool
这是万金油组合查询,用于复杂条件的嵌套查询,基础查询语法如下
{"bool" : {"must" : [],"should" : [],"must_not" : [],}
}
must
所有的语句都 必须(must
) 匹配,与AND
等价。must_not
所有的语句都 不能(must not
) 匹配,与NOT
等价。should
至少有一个语句要匹配,与OR
等价。
就这么简单! 当我们需要多个过滤器时,只须将它们置入 bool
过滤器的不同部分即可。
看个简单的例子:
GET /case_tree/case_tree/_search
{"query": {"bool": {"must": [{"exists": {"field": "review_opinions"}},{"term": {"author.keyword": "陈寅莹"}}]}}
}
找到寅莹写的存在检视意见的用例。
七、文档的聚合
桶的概念
桶 简单来说就是满足特定条件的文档的集合:
- 一个雇员属于 男性 桶或者 女性 桶
- 奥尔巴尼属于 纽约 桶
- 日期2014-10-28属于 十月 桶
当聚合开始被执行,每个文档里面的值通过计算来决定符合哪个桶的条件。如果匹配到,文档将放入相应的桶并接着进行聚合操作。
桶也可以被嵌套在其他桶里面,提供层次化的或者有条件的划分方案。例如,辛辛那提会被放入俄亥俄州这个桶,而 整个 俄亥俄州桶会被放入美国这个桶。
Elasticsearch
有很多种类型的桶,能让你通过很多种方式来划分文档(时间、最受欢迎的词、年龄区间、地理位置等等)。其实根本上都是通过同样的原理进行操作:基于条件来划分文档。
指标的概念
桶能让我们划分文档到有意义的集合,但是最终我们需要的是对这些桶内的文档进行一些指标的计算。分桶是一种达到目的的手段:它提供了一种给文档分组的方法来让我们可以计算感兴趣的指标。
大多数 指标 是简单的数学运算(例如最小值、平均值、最大值,还有汇总),这些是通过文档的值来计算。在实践中,指标能让你计算像平均薪资、最高出售价格、95%的查询延迟这样的数据。
桶和指标的组合
聚合 是由桶和指标组成的。 聚合可能只有一个桶,可能只有一个指标,或者可能两个都有。也有可能有一些桶嵌套在其他桶里面。例如,我们可以通过所属国家来划分文档(桶),然后计算每个国家的平均薪酬(指标)。
由于桶可以被嵌套,我们可以实现非常多并且非常复杂的聚合:
1.通过国家划分文档(桶)
2.然后通过性别划分每个国家(桶)
3.然后通过年龄区间划分每种性别(桶)
4.最后,为每个年龄区间计算平均薪酬(指标)
最后将告诉你每个 <国家, 性别, 年龄> 组合的平均薪酬。所有的这些都在一个请求内完成并且只遍历一次数据!
实战
看个例子:
GET /cars/transactions/_search
{"size" : 0,"aggs": { //--第一个桶"colors": { "terms": { //--按照color给所有的汽车分类"field": "color"},"aggs": { //--第二个桶"avg_price": { //--定义一个属性,把所有属于同一个颜色的数据做一个指标计算"avg": { //--定义指标计算为平均值"field": "price" //--按照价格计算平均值}}}}}
}
返回值
{
..."aggregations": {"colors": {"buckets": [{"key": "red","doc_count": 4,"avg_price": { "value": 32500}},{"key": "blue","doc_count": 2,"avg_price": {"value": 20000}},{"key": "green","doc_count": 2,"avg_price": {"value": 21000}}]}}
...
}
显然,我们可以根据上面的数据轻易做出树状图,饼图等数据可视化方案。
范围限定的聚合
所有聚合的例子到目前为止,你可能已经注意到,我们的搜索请求省略了一个 query 。 整个请求只不过是一个聚合。
聚合可以与搜索请求同时执行,但是我们需要理解一个新概念: 范围 。 默认情况下,聚合与查询是对同一范围进行操作的,也就是说,聚合是基于我们查询匹配的文档集合进行计算的。
我们可以看到聚合是隔离的。现实中,Elasticsearch 认为 “没有指定查询” 和 “查询所有文档” 是等价的。前面这个查询内部会转化成下面的这个请求:
GET /cars/transactions/_search
{"size" : 0,"query" : {"match_all" : {}},"aggs" : {"colors" : {"terms" : {"field" : "color"}}}
}
八、总结
本文介绍的只是elasticsearch的基础概念和语法,实际使用中还会有很多其他语法给大家使用。如果你作为一个前端,需要搭建服务器数据库,再也不需要后台配合了。但是es还有很多应用领域,集群、分片等复杂特性。如果需要系统的学习ElasticSearch,建议大家根据ElasticSearch权威指南学习。
如若内容造成侵权/违法违规/事实不符,请联系编程学习网邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
相关文章
- day13学习总结
day13学习总结 今日学习内容: 01 导入模块的原理02 包的使用03 文件操作04 文件读写和关闭05 数据持久 01 导入模块的原理 1.导入原理 """ 当代码执行到导入模块的时候,系统会自动进入指定模块,将模块中的代码全部执行一…...
2024/4/13 18:13:02 - Docker使用相关简单命令
RedHat/CentOS下的docker安装: RedHat/CentOS必须要6.6版本以上,或者7.x才能安装docker,建议在RedHat/CentOS 7上使用docker,因为RedHat/CentOS 7的内核升级到了 kernel 3.10,对lxc容器支持更好。 (1&#…...
2024/4/12 2:36:06 - 【精选】使用jira管理Scrum敏捷项目(六)jira敏捷开发,jira项目管理实战、实践
使用jira管理Scrum敏捷项目(六)jira敏捷开发,jira项目管理实战、实践前言一、实践前的准备工作1 环境搭建2 自定义问题类型3 自定义工作流4 自定义电子看板、敏捷看板、KANBAN配置5 对敏捷开发有一定的知识了解6 对jira中的名词有一定的了解二…...
2024/4/6 4:21:31 - 面试笔记--linux常用
1、绝对路径用、当前目录、上层目录、主目录用什么表示? 绝对路径:/wls/app/log 当前目录:./ 上层目录: ../ 主目录: ~/ 切换目录: cd 2、拷贝文件 cp 文件; cp -r 文件 连同文件夹一起复制 删除文…...
2024/4/13 3:48:42 - 贴吧彩色隐藏图是怎么制作的?我是怎么学的?
我想学彩色隐藏图制作,首先这个时候我的第一个动作就是不停的百度去搜索(建立在对图有认知的基础上)搜索了一大推相关信息,然后一一的进行测试。 其实这个时候我是不知道能不能搞定的,所以也是抱着试试的心态&#x…...
2024/4/11 16:02:19 - 中思软件技术教学
中思软件 主营业务 ABOUTUS> 中思(齐齐哈尔)科技有限公司集软件开发、信息技术咨询、信息化系统规划设计、人才培训于一体的高新技术公司,公司下设中思研发中心、中思人才服务中心、中思IT培训。 面向以企事业机关单位为主的机构提供软件产品应用开发和技术服…...
2024/4/6 4:21:28 - 搭建STM32CubeMX环境并实现LED流水灯
目录一、搭建STM32的开发环境1、安装jdk2、安装STM32 CubeMx3、安装MDK5二、利用工具实现LED的点亮1、选择MCU2、配置时钟3、设置引脚4、配置三、keil仿真调试1、编辑代码2、编译代码3、仿真运行四、烧录五、实验结果六、总结参考文献一、搭建STM32的开发环境 1、安装jdk STM…...
2024/4/6 4:21:27 - 2.简单基础类型
基本语法 1.在语法层面,缺省类型注解的ts与js完全一致。在ts中,类型的标注主要通过类型后置语法来实现 2.特殊说明:number表示数字类型,: 用来分割变量和类型的分隔符 let num 1; // 同时符合js和ts语法 let num: number 1; /…...
2024/4/16 12:48:06 - explain详解
Explain详解 使用EXPLAIN关键字可以模拟优化器执行SQL语句,分析你的查询语句或是结构的性能瓶颈在select语句之前增加explain关键字,MySQL会在查询上设置一个标记,执行查询会返回执行计划的信息,而不是执行这条SQL注意:…...
2024/4/11 16:01:49 - 14.内部类
成员内部类 概述:一个类的内部又包含了一个完整的类 特点: 1.外部类和内部类都可以生成独立字节码文件 2.内部类可直接使用外部类的私有成员属性,而不破坏封装性 3.外部类的具体实现可以交给内部类来完成 1 实例内部类 …...
2024/4/6 4:21:24 - stm32h743 FM25CL64铁电存储器踩坑记录
调试FRAM经验总结: 1、跑完FRAM读写代码之后,逻分仪发现总线上只有简单、短暂的电平变化,明显不是SPI的通信数据。 (经提醒发现连片选拉高拉低都没有执行到位) 后来发现是因为片选引脚没有初始化,所以直…...
2024/4/11 16:02:31 - 字符和字符串函数的模拟
字符和字符串函数的模拟求字符串长度长度不受限制的字符串函数长度受限制的字符串函数介绍字符串查找错误信息报告字符操作内存操作函数求字符串长度 strlen 求字符串长度 size_t strlen ( const char * str ); 1.字符串已经\0 作为结束标志,strlen函数返回的是在字…...
2024/4/11 16:02:07 - Java基础(2)
1.Java的注释 注释---标注解释说明代码的含义。 注释是给以后的自己或者别人看的,帮助理解代码的含义。 1.1.java的注释有三种: 1.单行注释 //注释内容----写在代码上面,只能写一行 2.多行注释 /*注释内容*/----写在代码上面,可以…...
2024/4/15 23:58:24 - 21、安装SQLServer
设置sqlserver安装镜像 # curl https://packages.microsoft.com/config/rhel/7/mssql-server-2017.repo > /etc/yum.repos.d/mssql-server.repoyum安装 # yum install -y mssql-server… 配置 # sudo /opt/mssql/bin/mssql-conf setup选项: 输入版本(1-8): …...
2024/4/13 6:29:44 - 软件测试——测试报告与验收
测试方法抉择 输入分类选等价给定范围加边界条件孤立想判定无限穷举取正交业务复杂场景法测试充分全覆盖 实际设计的思路 任何情况下都必须使用边界值分析方法,经验表明用这种方法设计出测试用例发现程序错误的能力最强必要时用等价类划分方法补充一些测试用例如果…...
2024/4/13 21:24:30 - java高并发
高并发是互联网应用的一大特点,也是互联网应用不可避免的一个问题;比如 淘宝双11购物狂欢节,京东618购物促销节,12306春节火车票,促销,秒杀等。 解决高并发问题是一个系统工程,需要站在全局高度统筹谋划&am…...
2024/4/11 16:36:43 - SystemTap编译安装
kprobes Linux kprobes调试技术用于跟踪内核函数执行状态所设计的一种轻量级内核调试技术。利用这个技术,可以在大部分函数中动态的插入探测点来收集所需的调试状态信息,而不会影响内核原有的执行流程。 目前提供三种技术: kprobe…...
2024/4/11 16:03:07 - IEEE754
IEEE 754-维基百科,自由的百科全书 IEEE 754-1985-From Wikipedia, the free encyclopedia IEEE 754-本词条由“科普中国”科学百科词条编写与应用工作项目 审核...
2024/4/11 16:02:49 - 10月25日学习总结
10月25日学习总结 一、复习 url’ ,统一资源定位符 params{}, 参数 headers{},请求头 cookies,浏览器本地存储技术 proxies{},代理 auth(),身份验证(发短信用) timeout5,超时 verify,验证 响应状态码: 2xx - 成功 3xx - 重定向 4xx - 请求有问题400 - Bad…...
2024/4/5 8:17:38 - 《算法笔记》读书记录DAY_40
CHAPTER_9 提高篇(3)——数据结构(2) 9.8.1哈夫曼树 首先来明确两个定义。对于一棵树,我们把叶子节点的权值乘以其路径长度的结果称为这个叶子节点的带权路径长度。例如下图中,叶子节点G的带权路径长度为 3 * 2 6 。树的带权路径长度(WPL)等于它所有叶…...
2024/4/12 6:50:27
最新文章
- QML学习之加载gif
在QML中直接加载GIF图片是不支持的,因为QML的Image元素不支持动画GIF。不过,你可以使用AnimatedImage元素来播放GIF。AnimatedImage是Qt QML模块的一部分,可以加载和播放GIF动画。 import QtQuick 2.0 import QtQuick.Controls 2.0 import Qt…...
2024/4/18 12:16:39 - 梯度消失和梯度爆炸的一些处理方法
在这里是记录一下梯度消失或梯度爆炸的一些处理技巧。全当学习总结了如有错误还请留言,在此感激不尽。 权重和梯度的更新公式如下: w w − η ⋅ ∇ w w w - \eta \cdot \nabla w ww−η⋅∇w 个人通俗的理解梯度消失就是网络模型在反向求导的时候出…...
2024/3/20 10:50:27 - CQT 质押者将从 Wormhole 的空投计划中获益,凸显跨链互操作的重要性
在向去中心化协议治理迈进的战略进程中,Wormhole 近期公布了分发 6.17 亿枚 W 代币的计划,这一举措旨在激励多个链上社区参与。这些代币将促进在 Wormhole 平台内的治理参与度,并对贡献者进行激励,将近有 400,000 个钱包即将收到部…...
2024/4/17 2:38:25 - 链表面试题
删除链表中等于给定值 val 的所有节点 /*** Definition for singly-linked list.* public class ListNode {* int val;* ListNode next;* ListNode() {}* ListNode(int val) { this.val val; }* ListNode(int val, ListNode next) { this.val val; this.next next; }* }*/ …...
2024/4/17 19:33:24 - 【外汇早评】美通胀数据走低,美元调整
原标题:【外汇早评】美通胀数据走低,美元调整昨日美国方面公布了新一期的核心PCE物价指数数据,同比增长1.6%,低于前值和预期值的1.7%,距离美联储的通胀目标2%继续走低,通胀压力较低,且此前美国一季度GDP初值中的消费部分下滑明显,因此市场对美联储后续更可能降息的政策…...
2024/4/18 0:33:31 - 【原油贵金属周评】原油多头拥挤,价格调整
原标题:【原油贵金属周评】原油多头拥挤,价格调整本周国际劳动节,我们喜迎四天假期,但是整个金融市场确实流动性充沛,大事频发,各个商品波动剧烈。美国方面,在本周四凌晨公布5月份的利率决议和新闻发布会,维持联邦基金利率在2.25%-2.50%不变,符合市场预期。同时美联储…...
2024/4/17 20:29:59 - 【外汇周评】靓丽非农不及疲软通胀影响
原标题:【外汇周评】靓丽非农不及疲软通胀影响在刚结束的周五,美国方面公布了新一期的非农就业数据,大幅好于前值和预期,新增就业重新回到20万以上。具体数据: 美国4月非农就业人口变动 26.3万人,预期 19万人,前值 19.6万人。 美国4月失业率 3.6%,预期 3.8%,前值 3…...
2024/4/18 9:45:31 - 【原油贵金属早评】库存继续增加,油价收跌
原标题:【原油贵金属早评】库存继续增加,油价收跌周三清晨公布美国当周API原油库存数据,上周原油库存增加281万桶至4.692亿桶,增幅超过预期的74.4万桶。且有消息人士称,沙特阿美据悉将于6月向亚洲炼油厂额外出售更多原油,印度炼油商预计将每日获得至多20万桶的额外原油供…...
2024/4/17 2:33:17 - 【外汇早评】日本央行会议纪要不改日元强势
原标题:【外汇早评】日本央行会议纪要不改日元强势近两日日元大幅走强与近期市场风险情绪上升,避险资金回流日元有关,也与前一段时间的美日贸易谈判给日本缓冲期,日本方面对汇率问题也避免继续贬值有关。虽然今日早间日本央行公布的利率会议纪要仍然是支持宽松政策,但这符…...
2024/4/17 7:50:46 - 【原油贵金属早评】欧佩克稳定市场,填补伊朗问题的影响
原标题:【原油贵金属早评】欧佩克稳定市场,填补伊朗问题的影响近日伊朗局势升温,导致市场担忧影响原油供给,油价试图反弹。此时OPEC表态稳定市场。据消息人士透露,沙特6月石油出口料将低于700万桶/日,沙特已经收到石油消费国提出的6月份扩大出口的“适度要求”,沙特将满…...
2024/4/18 3:56:01 - 【外汇早评】美欲与伊朗重谈协议
原标题:【外汇早评】美欲与伊朗重谈协议美国对伊朗的制裁遭到伊朗的抗议,昨日伊朗方面提出将部分退出伊核协议。而此行为又遭到欧洲方面对伊朗的谴责和警告,伊朗外长昨日回应称,欧洲国家履行它们的义务,伊核协议就能保证存续。据传闻伊朗的导弹已经对准了以色列和美国的航…...
2024/4/18 3:56:04 - 【原油贵金属早评】波动率飙升,市场情绪动荡
原标题:【原油贵金属早评】波动率飙升,市场情绪动荡因中美贸易谈判不安情绪影响,金融市场各资产品种出现明显的波动。随着美国与中方开启第十一轮谈判之际,美国按照既定计划向中国2000亿商品征收25%的关税,市场情绪有所平复,已经开始接受这一事实。虽然波动率-恐慌指数VI…...
2024/4/18 3:55:30 - 【原油贵金属周评】伊朗局势升温,黄金多头跃跃欲试
原标题:【原油贵金属周评】伊朗局势升温,黄金多头跃跃欲试美国和伊朗的局势继续升温,市场风险情绪上升,避险黄金有向上突破阻力的迹象。原油方面稍显平稳,近期美国和OPEC加大供给及市场需求回落的影响,伊朗局势并未推升油价走强。近期中美贸易谈判摩擦再度升级,美国对中…...
2024/4/18 3:55:54 - 【原油贵金属早评】市场情绪继续恶化,黄金上破
原标题:【原油贵金属早评】市场情绪继续恶化,黄金上破周初中国针对于美国加征关税的进行的反制措施引发市场情绪的大幅波动,人民币汇率出现大幅的贬值动能,金融市场受到非常明显的冲击。尤其是波动率起来之后,对于股市的表现尤其不安。隔夜美国股市出现明显的下行走势,这…...
2024/4/18 3:55:45 - 【外汇早评】美伊僵持,风险情绪继续升温
原标题:【外汇早评】美伊僵持,风险情绪继续升温昨日沙特两艘油轮再次发生爆炸事件,导致波斯湾局势进一步恶化,市场担忧美伊可能会出现摩擦生火,避险品种获得支撑,黄金和日元大幅走强。美指受中美贸易问题影响而在低位震荡。继5月12日,四艘商船在阿联酋领海附近的阿曼湾、…...
2024/4/17 21:50:30 - 【原油贵金属早评】贸易冲突导致需求低迷,油价弱势
原标题:【原油贵金属早评】贸易冲突导致需求低迷,油价弱势近日虽然伊朗局势升温,中东地区几起油船被袭击事件影响,但油价并未走高,而是出于调整结构中。由于市场预期局势失控的可能性较低,而中美贸易问题导致的全球经济衰退风险更大,需求会持续低迷,因此油价调整压力较…...
2024/4/15 13:53:08 - 氧生福地 玩美北湖(上)——为时光守候两千年
原标题:氧生福地 玩美北湖(上)——为时光守候两千年一次说走就走的旅行,只有一张高铁票的距离~ 所以,湖南郴州,我来了~ 从广州南站出发,一个半小时就到达郴州西站了。在动车上,同时改票的南风兄和我居然被分到了一个车厢,所以一路非常愉快地聊了过来。 挺好,最起…...
2024/4/15 9:16:52 - 氧生福地 玩美北湖(中)——永春梯田里的美与鲜
原标题:氧生福地 玩美北湖(中)——永春梯田里的美与鲜一觉醒来,因为大家太爱“美”照,在柳毅山庄去寻找龙女而错过了早餐时间。近十点,向导坏坏还是带着饥肠辘辘的我们去吃郴州最富有盛名的“鱼头粉”。说这是“十二分推荐”,到郴州必吃的美食之一。 哇塞!那个味美香甜…...
2024/4/18 9:24:29 - 氧生福地 玩美北湖(下)——奔跑吧骚年!
原标题:氧生福地 玩美北湖(下)——奔跑吧骚年!让我们红尘做伴 活得潇潇洒洒 策马奔腾共享人世繁华 对酒当歌唱出心中喜悦 轰轰烈烈把握青春年华 让我们红尘做伴 活得潇潇洒洒 策马奔腾共享人世繁华 对酒当歌唱出心中喜悦 轰轰烈烈把握青春年华 啊……啊……啊 两…...
2024/4/18 3:56:18 - 扒开伪装医用面膜,翻六倍价格宰客,小姐姐注意了!
原标题:扒开伪装医用面膜,翻六倍价格宰客,小姐姐注意了!扒开伪装医用面膜,翻六倍价格宰客!当行业里的某一品项火爆了,就会有很多商家蹭热度,装逼忽悠,最近火爆朋友圈的医用面膜,被沾上了污点,到底怎么回事呢? “比普通面膜安全、效果好!痘痘、痘印、敏感肌都能用…...
2024/4/18 3:55:57 - 「发现」铁皮石斛仙草之神奇功效用于医用面膜
原标题:「发现」铁皮石斛仙草之神奇功效用于医用面膜丽彦妆铁皮石斛医用面膜|石斛多糖无菌修护补水贴19大优势: 1、铁皮石斛:自唐宋以来,一直被列为皇室贡品,铁皮石斛生于海拔1600米的悬崖峭壁之上,繁殖力差,产量极低,所以古代仅供皇室、贵族享用 2、铁皮石斛自古民间…...
2024/4/18 3:55:50 - 丽彦妆\医用面膜\冷敷贴轻奢医学护肤引导者
原标题:丽彦妆\医用面膜\冷敷贴轻奢医学护肤引导者【公司简介】 广州华彬企业隶属香港华彬集团有限公司,专注美业21年,其旗下品牌: 「圣茵美」私密荷尔蒙抗衰,产后修复 「圣仪轩」私密荷尔蒙抗衰,产后修复 「花茵莳」私密荷尔蒙抗衰,产后修复 「丽彦妆」专注医学护…...
2024/4/15 23:28:22 - 广州械字号面膜生产厂家OEM/ODM4项须知!
原标题:广州械字号面膜生产厂家OEM/ODM4项须知!广州械字号面膜生产厂家OEM/ODM流程及注意事项解读: 械字号医用面膜,其实在我国并没有严格的定义,通常我们说的医美面膜指的应该是一种「医用敷料」,也就是说,医用面膜其实算作「医疗器械」的一种,又称「医用冷敷贴」。 …...
2024/4/18 3:56:20 - 械字号医用眼膜缓解用眼过度到底有无作用?
原标题:械字号医用眼膜缓解用眼过度到底有无作用?医用眼膜/械字号眼膜/医用冷敷眼贴 凝胶层为亲水高分子材料,含70%以上的水分。体表皮肤温度传导到本产品的凝胶层,热量被凝胶内水分子吸收,通过水分的蒸发带走大量的热量,可迅速地降低体表皮肤局部温度,减轻局部皮肤的灼…...
2024/4/18 3:56:11 - 配置失败还原请勿关闭计算机,电脑开机屏幕上面显示,配置失败还原更改 请勿关闭计算机 开不了机 这个问题怎么办...
解析如下:1、长按电脑电源键直至关机,然后再按一次电源健重启电脑,按F8健进入安全模式2、安全模式下进入Windows系统桌面后,按住“winR”打开运行窗口,输入“services.msc”打开服务设置3、在服务界面,选中…...
2022/11/19 21:17:18 - 错误使用 reshape要执行 RESHAPE,请勿更改元素数目。
%读入6幅图像(每一幅图像的大小是564*564) 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 - 配置 已完成 请勿关闭计算机,win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机...
win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机”问题的解决方法在win7系统关机时如果有升级系统的或者其他需要会直接进入一个 等待界面,在等待界面中我们需要等待操作结束才能关机,虽然这比较麻烦,但是对系统进行配置和升级…...
2022/11/19 21:17:15 - 台式电脑显示配置100%请勿关闭计算机,“准备配置windows 请勿关闭计算机”的解决方法...
有不少用户在重装Win7系统或更新系统后会遇到“准备配置windows,请勿关闭计算机”的提示,要过很久才能进入系统,有的用户甚至几个小时也无法进入,下面就教大家这个问题的解决方法。第一种方法:我们首先在左下角的“开始…...
2022/11/19 21:17:14 - win7 正在配置 请勿关闭计算机,怎么办Win7开机显示正在配置Windows Update请勿关机...
置信有很多用户都跟小编一样遇到过这样的问题,电脑时发现开机屏幕显现“正在配置Windows Update,请勿关机”(如下图所示),而且还需求等大约5分钟才干进入系统。这是怎样回事呢?一切都是正常操作的,为什么开时机呈现“正…...
2022/11/19 21:17:13 - 准备配置windows 请勿关闭计算机 蓝屏,Win7开机总是出现提示“配置Windows请勿关机”...
Win7系统开机启动时总是出现“配置Windows请勿关机”的提示,没过几秒后电脑自动重启,每次开机都这样无法进入系统,此时碰到这种现象的用户就可以使用以下5种方法解决问题。方法一:开机按下F8,在出现的Windows高级启动选…...
2022/11/19 21:17:12 - 准备windows请勿关闭计算机要多久,windows10系统提示正在准备windows请勿关闭计算机怎么办...
有不少windows10系统用户反映说碰到这样一个情况,就是电脑提示正在准备windows请勿关闭计算机,碰到这样的问题该怎么解决呢,现在小编就给大家分享一下windows10系统提示正在准备windows请勿关闭计算机的具体第一种方法:1、2、依次…...
2022/11/19 21:17:11 - 配置 已完成 请勿关闭计算机,win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机”的解决方法...
今天和大家分享一下win7系统重装了Win7旗舰版系统后,每次关机的时候桌面上都会显示一个“配置Windows Update的界面,提示请勿关闭计算机”,每次停留好几分钟才能正常关机,导致什么情况引起的呢?出现配置Windows Update…...
2022/11/19 21:17:10 - 电脑桌面一直是清理请关闭计算机,windows7一直卡在清理 请勿关闭计算机-win7清理请勿关机,win7配置更新35%不动...
只能是等着,别无他法。说是卡着如果你看硬盘灯应该在读写。如果从 Win 10 无法正常回滚,只能是考虑备份数据后重装系统了。解决来方案一:管理员运行cmd:net stop WuAuServcd %windir%ren SoftwareDistribution SDoldnet start WuA…...
2022/11/19 21:17:09 - 计算机配置更新不起,电脑提示“配置Windows Update请勿关闭计算机”怎么办?
原标题:电脑提示“配置Windows Update请勿关闭计算机”怎么办?win7系统中在开机与关闭的时候总是显示“配置windows update请勿关闭计算机”相信有不少朋友都曾遇到过一次两次还能忍但经常遇到就叫人感到心烦了遇到这种问题怎么办呢?一般的方…...
2022/11/19 21:17:08 - 计算机正在配置无法关机,关机提示 windows7 正在配置windows 请勿关闭计算机 ,然后等了一晚上也没有关掉。现在电脑无法正常关机...
关机提示 windows7 正在配置windows 请勿关闭计算机 ,然后等了一晚上也没有关掉。现在电脑无法正常关机以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!关机提示 windows7 正在配…...
2022/11/19 21:17:05 - 钉钉提示请勿通过开发者调试模式_钉钉请勿通过开发者调试模式是真的吗好不好用...
钉钉请勿通过开发者调试模式是真的吗好不好用 更新时间:2020-04-20 22:24:19 浏览次数:729次 区域: 南阳 > 卧龙 列举网提醒您:为保障您的权益,请不要提前支付任何费用! 虚拟位置外设器!!轨迹模拟&虚拟位置外设神器 专业用于:钉钉,外勤365,红圈通,企业微信和…...
2022/11/19 21:17:05 - 配置失败还原请勿关闭计算机怎么办,win7系统出现“配置windows update失败 还原更改 请勿关闭计算机”,长时间没反应,无法进入系统的解决方案...
前几天班里有位学生电脑(windows 7系统)出问题了,具体表现是开机时一直停留在“配置windows update失败 还原更改 请勿关闭计算机”这个界面,长时间没反应,无法进入系统。这个问题原来帮其他同学也解决过,网上搜了不少资料&#x…...
2022/11/19 21:17:04 - 一个电脑无法关闭计算机你应该怎么办,电脑显示“清理请勿关闭计算机”怎么办?...
本文为你提供了3个有效解决电脑显示“清理请勿关闭计算机”问题的方法,并在最后教给你1种保护系统安全的好方法,一起来看看!电脑出现“清理请勿关闭计算机”在Windows 7(SP1)和Windows Server 2008 R2 SP1中,添加了1个新功能在“磁…...
2022/11/19 21:17:03 - 请勿关闭计算机还原更改要多久,电脑显示:配置windows更新失败,正在还原更改,请勿关闭计算机怎么办...
许多用户在长期不使用电脑的时候,开启电脑发现电脑显示:配置windows更新失败,正在还原更改,请勿关闭计算机。。.这要怎么办呢?下面小编就带着大家一起看看吧!如果能够正常进入系统,建议您暂时移…...
2022/11/19 21:17:02 - 还原更改请勿关闭计算机 要多久,配置windows update失败 还原更改 请勿关闭计算机,电脑开机后一直显示以...
配置windows update失败 还原更改 请勿关闭计算机,电脑开机后一直显示以以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!配置windows update失败 还原更改 请勿关闭计算机&#x…...
2022/11/19 21:17:01 - 电脑配置中请勿关闭计算机怎么办,准备配置windows请勿关闭计算机一直显示怎么办【图解】...
不知道大家有没有遇到过这样的一个问题,就是我们的win7系统在关机的时候,总是喜欢显示“准备配置windows,请勿关机”这样的一个页面,没有什么大碍,但是如果一直等着的话就要两个小时甚至更久都关不了机,非常…...
2022/11/19 21:17:00 - 正在准备配置请勿关闭计算机,正在准备配置windows请勿关闭计算机时间长了解决教程...
当电脑出现正在准备配置windows请勿关闭计算机时,一般是您正对windows进行升级,但是这个要是长时间没有反应,我们不能再傻等下去了。可能是电脑出了别的问题了,来看看教程的说法。正在准备配置windows请勿关闭计算机时间长了方法一…...
2022/11/19 21:16:59 - 配置失败还原请勿关闭计算机,配置Windows Update失败,还原更改请勿关闭计算机...
我们使用电脑的过程中有时会遇到这种情况,当我们打开电脑之后,发现一直停留在一个界面:“配置Windows Update失败,还原更改请勿关闭计算机”,等了许久还是无法进入系统。如果我们遇到此类问题应该如何解决呢࿰…...
2022/11/19 21:16:58 - 如何在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