ElasticSearch聚合操作案例
1、根据color分组统计销售数量
只执行聚合分组,不做复杂的聚合统计。在ES中最基础的聚合为terms,相当于
SQL中的count。
在ES中默认为分组数据做排序,使用的是doc_count数据执行降序排列。可以使用
_key元数据,根据分组后的字段数据执行不同的排序方案,也可以根据_count元数
据,根据分组后的统计值执行不同的排序方案。
1 GET /cars/_search
2 {
3 "aggs": {
4 "group_by_color": {
5 "terms": {
6 "field": "color",
7 "order": {
8 "_count": "desc"
9 }
10 }
11 }
12 }
13 }
2、统计不同color车辆的平均价格
本案例先根据color执行聚合分组,在此分组的基础上,对组内数据执行聚合统
计,这个组内数据的聚合统计就是metric。同样可以执行排序,因为组内有聚合统
计,且对统计数据给予了命名avg_by_price,所以可以根据这个聚合统计数据字段名
执行排序逻辑。
1 GET /cars/_search
2 {
3 "aggs": {
4 "group_by_color": {
5 "terms": {
6 "field": "color",
7 "order": {
8 "avg_by_price": "asc"
9 }
10 },
11 "aggs": {
12 "avg_by_price": {
13 "avg": {
14 "field": "price"
15 }
16 }
17 }
18 }
19 }
20 }
size可以设置为0,表示不返回ES中的文档,只返回ES聚合之后的数据,提高查询速
度,当然如果你需要这些文档的话,也可以按照实际情况进行设置
1 GET /cars/_search
2 {
3 "size" : 0,
4 "aggs": {
5 "group_by_color": {
6 "terms": {
7 "field": "color"
8 },
9 "aggs": {
10 "group_by_brand" : {
11 "terms": {
12 "field": "brand",
13 "order": {
14 "avg_by_price": "desc"
15 }
16 },
17 "aggs": {
18 "avg_by_price": {
19 "avg": {
20 "field": "price"
21 }
22 }
23 }
24 }
25 }
26 }
27 }
28 }
3、统计不同color不同brand中车辆的平均价格
先根据color聚合分组,在组内根据brand再次聚合分组,这种操作可以称为下钻
分析。
Aggs如果定义比较多,则会感觉语法格式混乱,aggs语法格式,有一个相对固定
的结构,简单定义:aggs可以嵌套定义,可以水平定义。
嵌套定义称为下钻分析。水平定义就是平铺多个分组方式。
1 GET /index_name/type_name/_search
2 {
3 "aggs" : {
4 "定义分组名称(最外层)": {
5 "分组策略如:terms、avg、sum" : {
6 "field" : "根据哪一个字段分组",
7 "其他参数" : ""
8 },
9 "aggs" : {
10 "分组名称1" : {},
11 "分组名称2" : {}
12 }
13 }
14 }
15 }
1 GET /cars/_search
2 {
3 "aggs": {
4 "group_by_color": {
5 "terms": {
6 "field": "color",
7 "order": {
8 "avg_by_price_color": "asc"
9 }
10 },
11 "aggs": {
12 "avg_by_price_color" : {
13 "avg": {
14 "field": "price"
15 }
16 },
17 "group_by_brand" : {
18 "terms": {
19 "field": "brand",
20 "order": {
21 "avg_by_price_brand": "desc"
22 }
23 },
24 "aggs": {
25 "avg_by_price_brand": {
26 "avg": {
27 "field": "price"
28 }
29 }
30 }
31 }
32 }
33 }
34 }
35 }
4、统计不同color中的最大和最小价格、总价
1 GET /cars/_search
2 {
3 "aggs": {
4 "group_by_color": {
5 "terms": {
6 "field": "color"
7 },
8 "aggs": {
9 "max_price": {
10 "max": {
11 "field": "price"
12 }
13 },
14 "min_price" : {
15 "min": {
16 "field": "price"
17 }
18 },
19 "sum_price" : {
20 "sum": {
21 "field": "price"
22 }
23 }
24 }
25 }
26 }
27 }
5、统计不同品牌汽车中价格排名最高的车型
在分组后,可能需要对组内的数据进行排序,并选择其中排名高的数据。那么可
以使用s来实现:top_top_hithits中的属性size代表取组内多少条数据(默认为
10);sort代表组内使用什么字段什么规则排序(默认使用_doc的asc规则排序);
_source代表结果中包含document中的那些字段(默认包含全部字段)。
1 GET cars/_search
2 {
3 "size" : 0,
4 "aggs": {
5 "group_by_brand": {
6 "terms": {
7 "field": "brand"
8 },
9 "aggs": {
10 "top_car": {
11 "top_hits": {
12 "size": 1,
13 "sort": [
14 {
15 "price": {
16 "order": "desc"
17 }
18 }
19 ],
20 "_source": {
21 "includes": ["model", "price"]
22 }
23 }
24 }
25 }
26 }
27 }
28 }
6、histogram 区间统计
histogram类似terms,也是进行bucket分组操作的,是根据一个field,实现数据
区间分组。
如:以100万为一个范围,统计不同范围内车辆的销售量和平均价格。那么使用
histogram的聚合的时候,field指定价格字段price。区间范围是100万-interval :
1000000。这个时候ES会将price价格区间划分为: [0, 1000000), [1000000,
2000000), [2000000, 3000000)等,依次类推。在划分区间的同时,histogram会类似
terms进行数据数量的统计(count),可以通过嵌套aggs对聚合分组后的组内数据做
再次聚合分析。
1 GET /cars/_search
2 {
3 "aggs": {
4 "histogram_by_price": {
5 "histogram": {
6 "field": "price",
7 "interval": 1000000
8 },
9 "aggs": {
10 "avg_by_price": {
11 "avg": {
12 "field": "price"
13 }
14 }
15 }
16 }
17 }
18 }
7、date_histogram区间分组
date_histogram可以对date类型的field执行区间聚合分组,如每月销量,每年销
量等。
如:以月为单位,统计不同月份汽车的销售数量及销售总金额。这个时候可以使
用date_histogram实现聚合分组,其中field来指定用于聚合分组的字段,interval指
定区间范围(可选值有:year、quarter、month、week、day、hour、minute、
second),format指定日期格式化,min_doc_count指定每个区间的最少document(如
果不指定,默认为0,当区间范围内没有document时,也会显示bucket分组),
extended_bounds指定起始时间和结束时间(如果不指定,默认使用字段中日期最小值
所在范围和最大值所在范围为起始和结束时间)。
1 ES7.x之前的语法
2 GET /cars/_search
3 {
4 "aggs": {
5 "histogram_by_date" : {
6 "date_histogram": {
7 "field": "sold_date",
8 "interval": "month",
9 "format": "yyyy‐MM‐dd",
10 "min_doc_count": 1,
11 "extended_bounds": {
12 "min": "2021‐01‐01",
13 "max": "2022‐12‐31"
14 }
15 },
16 "aggs": {
17 "sum_by_price": {
18 "sum": {
19 "field": "price"
20 }
21 }
22 }
23 }
24 }
25 }
26 执行后出现
27 #! Deprecation: [interval] on [date_histogram] is deprecated, use [fixed_inter
val] or [calendar_interval] in the future.
28
29 7.X之后
30 GET /cars/_search
31 {
32 "aggs": {
33 "histogram_by_date" : {
34 "date_histogram": {
35 "field": "sold_date",
36 "calendar_interval": "month",
37 "format": "yyyy‐MM‐dd",
38 "min_doc_count": 1,
39 "extended_bounds": {
40 "min": "2021‐01‐01",
41 "max": "2022‐12‐31"
42 }
43 },
44 "aggs": {
45 "sum_by_price": {
46 "sum": {
47 "field": "price"
48 }
49 }
50 }
51 }
52 }
53 }
8、_global bucket
在聚合统计数据的时候,有些时候需要对比部分数据和总体数据。
如:统计某品牌车辆平均价格和所有车辆平均价格。global是用于定义一个全局
bucket,这个bucket会忽略query的条件,检索所有document进行对应的聚合统计。
GET /cars/_search
2 {
3 "size" : 0,
4 "query": {
5 "match": {
6 "brand": "大众"
7 }
8 },
9 "aggs": {
10 "volkswagen_of_avg_price": {
11 "avg": {
12 "field": "price"
13 }
14 },
15 "all_avg_price" : {
16 "global": {},
17 "aggs": {
18 "all_of_price": {
19 "avg": {
20 "field": "price"
21 }
22 }
23 }
24 }
25 }
26 }
9、aggs+order
对聚合统计数据进行排序。
如:统计每个品牌的汽车销量和销售总额,按照销售总额的降序排列。
1 GET /cars/_search
2 {
3 "aggs": {
4 "group_of_brand": {
5 "terms": {
6 "field": "brand",
7 "order": {
8 "sum_of_price": "desc"
9 }
10 },
11 "aggs": {
12 "sum_of_price": {
13 "sum": {
14 "field": "price"
15 }
16 }
17 }
18 }
19 }
20 }
如果有多层aggs,执行下钻聚合的时候,也可以根据最内层聚合数据执行排序。
如:统计每个品牌中每种颜色车辆的销售总额,并根据销售总额降序排列。这就像
SQL中的分组排序一样,只能组内数据排序,而不能跨组实现排序。
1 GET /cars/_search
2 {
3 "aggs": {
4 "group_by_brand": {
5 "terms": {
6 "field": "brand"
7 },
8 "aggs": {
9 "group_by_color": {
10 "terms": {
11 "field": "color",
12 "order": {
13 "sum_of_price": "desc"
14 }
15 },
16 "aggs": {
17 "sum_of_price": {
18 "sum": {
19 "field": "price"
20 }
21 }
22 }
23 }
24 }
25 }
26 }
27 }
10、search+aggs
聚合类似SQL中的group by子句,search类似SQL中的where子句。在ES中是完全可
以将search和aggregations整合起来,执行相对更复杂的搜索统计。
如:统计某品牌车辆每个季度的销量和销售额。
1 GET /cars/_search
2 {
3 "query": {
4 "match": {
5 "brand": "大众"
6 }
7 },
8 "aggs": {
9 "histogram_by_date": {
10 "date_histogram": {
11 "field": "sold_date",
12 "calendar_interval": "quarter",
13 "min_doc_count": 1
14 },
15 "aggs": {
16 "sum_by_price": {
17 "sum": {
18 "field": "price"
19 }
20 }
21 }
22 }
23 }
24 }
11、filter+aggs
在ES中,filter也可以和aggs组合使用,实现相对复杂的过滤聚合分析。
如:统计10万~50万之间的车辆的平均价格。
1 GET /cars/_search
2 {
3 "query": {
4 "constant_score": {
5 "filter": {
6 "range": {
7 "price": {
8 "gte": 100000,
9 "lte": 500000
10 }
11 }
12 }
13 }
14 },
15 "aggs": {
16 "avg_by_price": {
17 "avg": {
18 "field": "price"
19 }
20 }
21 }
22 }
12、聚合中使用filter
filter也可以使用在aggs句法中,filter的范围决定了其过滤的范围。
如:统计某品牌汽车最近一年的销售总额。将filter放在aggs内部,代表这个过滤器
只对query搜索得到的结果执行filter过滤。如果filter放在aggs外部,过滤器则会过
滤所有的数据。
12M/M 表示 12 个月。
1y/y 表示 1年。
d 表示天
1 GET /cars/_search
2 {
3 "query": {
4 "match": {
5 "brand": "大众"
6 }
7 },
8 "aggs": {
9 "count_last_year": {
10 "filter": {
11 "range": {
12 "sold_date": {
13 "gte": "now‐12M"
14 }
15 }
16 },
17 "aggs": {
18 "sum_of_price_last_year": {
19 "sum": {
20 "field": "price"
21 }
22 }
23 }
24 }
25 }
26 }
相关文章:
ElasticSearch聚合操作案例
1、根据color分组统计销售数量 只执行聚合分组,不做复杂的聚合统计。在ES中最基础的聚合为terms,相当于 SQL中的count。 在ES中默认为分组数据做排序,使用的是doc_count数据执行降序排列。可以使用 _key元数据,根据分组后的字段数…...
微信小程序单双周选择排序有效果图
效果图 .wxml <view class"group-box"><label class"radio" wx:for"{{[单周,双周,全选]}}" wx:key"index" bind:tap"radioChange"data-index"{{index}}"><radio checked"{{index zcTem.ind…...
保持Word中插入图片的清晰度
大家有没有遇到这个问题,原本绘制的高清晰度图片,插入word后就变模糊了。先说原因,word默认启动了自动压缩图片功能,分享一下如何关闭这项功能,保持Word中插入图片的清晰度。 ①在Word文档中,点击左上角的…...
Matlab 基于GUI的汽车巡航模糊pid控制
1、内容简介 Matlab 225-基于GUI的汽车巡航模糊pid控制 可以交流、咨询、答疑 2、内容说明 略 依据比例—积分—微分控制的基本原理,我们利用MATLAB软件中SMULINK建立一个简单的PID控制器模型,利用这个模型在模糊控制过程中对PID控制参数进行在线的实时…...
(网络)应用层协议-HTTPS
1.HTTPS是什么? HTTPS是应用层的一种协议,是在HTTP的基础上进行了加密层的处理。 HTTP协议的内容都是按照文本的形式进行传输的,所以呢就很容易被别人知道传输的是什么。 我们在了解了TCP/IP之后是知道我们的数据在传输的过程中是通过路由器进…...
Browserless 快速上手
要将你提供的 HTML 模板和数据结构转换为可以用于 Browserless /pdf 接口的 JSON 请求体(且能正确渲染为 PDF),需要满足以下几点: ✅ 最终目标格式(这是能用的格式): json 复制编辑 { "h…...
JWT的介绍与在Fastapi框架中的应用
什么是JWT JWT (JSON Web Token) 是一个开放标准 ( RFC 7519 ),它定义了一种紧凑且自包含的方式,用于在各方之间安全地以 JSON 对象的形式传输信息。由于这些信息经过数字签名,因此可以被验证和信任。JWT 可以使用密钥(采用HMAC算…...
Html5新特性_js 给元素自定义属性_json 详解_浅克隆与深克隆
文章目录 1. html5新特性2.用 js 给元素自定义属性3.json3.1 json与普通对象的区别3.2 json对象与 js对象的转化 4.浅克隆和深克隆 1. html5新特性 html5中引入了新的特性(新的标签),下面的新标签是新的结构标签,不过不太常用 h…...
一般纯软工程学习路径
基础 阶段一:基本熟悉工具链代码托管流程和配置 代码托管基本 1. 成见和管理代码库(组) 2. 成员配置和权限配置 代码迁移 1. 手工迁移 2. 脚本自动化迁移 代码提交 1. SSH key配置 2. 代码提交commit message 管理需求单 MR合并请求 1. 合并请…...
ES6基础特性
1.定时器 ——延时定时器 setTimeout(function()>{ },2000) ——间隔执行定时器 setInterval(function()>{ },2000) *定时器方法都返回唯一标识编号id&…...
SSTI记录
SSTI(Server-Side Template Injection,服务器段模板注入) 当前使用的一些框架,如python的flask、php的tp、java的spring,都采用成熟的MVC模式,用户的输入会先进入到Controller控制器,然后根据请求的类型和请求的指令发…...
Go语言爬虫系列教程(一) 爬虫基础入门
Go爬虫基础入门 1. 网络爬虫概念介绍 1.1 什么是网络爬虫 网络爬虫(Web Crawler),又称网页蜘蛛、网络机器人,是一种按照一定规则自动抓取互联网信息的程序或脚本。其核心功能是模拟人类浏览网页的行为,通过发送网络…...
c/c++爬虫总结
GitHub 开源 C/C 网页爬虫探究:协议、实现与测试 网页爬虫,作为一种自动化获取网络信息的强大工具,在搜索引擎、数据挖掘、市场分析等领域扮演着至关重要的角色。对于希望深入理解网络工作原理和数据提取技术的 C/C 开发者,尤其是…...
【HarmonyOS 5】鸿蒙碰一碰分享功能开发指南
【HarmonyOS 5】鸿蒙碰一碰分享功能开发指南 一、前言 碰一碰分享的定义 在 HarmonyOS NEXT 系统中,华为分享推出的碰一碰分享功能,为用户带来了便捷高效的跨端分享体验。开发者通过简单的代码实现,就能调用系统 API 拉起分享卡片模板&…...
vue H5解决安卓手机软键盘弹出,页面高度被顶起
开发中安卓机上遇到的软键盘弹出导致布局问题 直接上代码_ 在这里插入代码片 <div class"container"><div class"appContainer" :style"{height:isKeyboardOpen? Heights :inherit}"><p class"name"><!-- 绑定…...
【pypi镜像源】使用devpi实现python镜像源代理(缓存加速,私有仓库,版本控制)
【pypi镜像源】使用devpi实现python镜像源代理(缓存加速,私有仓库,版本控制) 文章目录 1、背景与目标2、devpi-server 服务端搭建3、devpi 镜像源使用 1、背景与目标 背景1(访问速度优化): 直…...
Spring Bean有哪几种配置方式?
大家好,我是锋哥。今天分享关于【Spring Bean有哪几种配置方式?】面试题。希望对大家有帮助; Spring Bean有哪几种配置方式? 1000道 互联网大厂Java工程师 精选面试题-Java资源分享网 Spring Bean的配置方式主要有三种ÿ…...
无人机信号线被电磁干扰导致停机
问题描述: 无人机飞控和电调之间使用PWM信号控制时候,无人机可以正常起飞,但是在空中悬停的时候会出现某一个电机停机,经排查电调没有启动过流过压等保护,定位到电调和飞控之间的信号线被干扰问题。 信号线被干扰&am…...
RWA开发全解析:技术架构、合规路径与未来趋势
RWA开发全解析:技术架构、合规路径与未来趋势 ——2025年真实世界资产代币化的创新逻辑与实践指南 一、RWA的核心定义与爆发逻辑 1. 什么是RWA? RWA(Real World Asset Tokenization)是通过区块链技术将现实资产(房地…...
消息队列作用及RocketMQ详解(1)
目录 1 什么是消息队列 2 为什么要使用消息队列 2.1 异步处理 2.2 解耦 2.3 削峰填谷 3. 如何选择消息队列? 4. RocketMQ 4.1 生产者 4.2 消费者 4.3 主题 4.4 NameSever 4.5 Broker 5. 生产者发送消息 5.1 普通消息发送 5.1.1 同步发送 5.1.2 异步发送 5…...
DICOM 网络服务实现:医学影像传输与管理的技术实践
🧑 博主简介:CSDN博客专家、CSDN平台优质创作者,高级开发工程师,数学专业,10年以上C/C++, C#, Java等多种编程语言开发经验,拥有高级工程师证书;擅长C/C++、C#等开发语言,熟悉Java常用开发技术,能熟练应用常用数据库SQL server,Oracle,mysql,postgresql等进行开发应用…...
恰到好处TDR
了解我的人都知道我喜欢那些从 1 到 10 到 11 的东西。对于那里的年轻人,参见 Spinal Tap,1984 年。但是有没有把它调得太高这样的事情呢?我收到并回答了很多关于使用时域反射仪 (TDR) 进行测量的问题。 我需要多少带宽…...
kubernetes服务自动伸缩-VPA
实验环境 安装好k8s集群 一、准备工作 1、部署Metrics Server VPA 依赖 Metrics Server 来获取 Pod 的资源使用数据。首先需要部署 Metrics Server 下载地址(需要连接VPN):wget https://github.com/kubernetes-sigs/metrics-server/relea…...
stm32之BKP备份寄存器和RTC时钟
目录 1.时间戳1.1 Unix时间戳1.2 UTC/GMT1.3 时间戳转换**1.** time_t time(time_t*)**2.** struct tm* gmtime(const time_t*)**3.** struct tm* localtime(const time_t*)**4.** time_t mktime(struct tm*)**5.** char* ctime(const time_t*)**6.** char* asctime(const stru…...
OSCP - Hack The Box - Sau
主要知识点 CVE-2023-27163漏洞利用systemd提权 具体步骤 执行nmap扫描,可以先看一下55555端口 Nmap scan report for 10.10.11.224 Host is up (0.58s latency). Not shown: 65531 closed tcp ports (reset) PORT STATE SERVICE VERSION 22/tcp o…...
C++色彩博弈的史诗:红黑树
文章目录 1.红黑树的概念2.红黑树的结构3.红黑树的插入4.红黑树的删除5.红黑树与AVL树的比较6.红黑树的验证希望读者们多多三连支持小编会继续更新你们的鼓励就是我前进的动力! 红黑树是一种自平衡二叉查找树,每个节点都带有颜色属性,颜色或为…...
14.three官方示例+编辑器+AI快速学习webgl_buffergeometry_instancing_interleaved
本实例主要讲解内容 这个Three.js示例展示了如何结合使用索引几何体、GPU实例化和交错缓冲区来高效渲染大量相同模型的不同实例。通过这种技术组合,我们可以在保持较低内存占用的同时渲染数千个独立变换的对象。 核心技术包括: 索引几何体的实例化渲染…...
「华为」人形机器人赛道投资首秀!
温馨提示:运营团队2025年最新原创报告(共210页) —— 正文: 近日,【华为】完成具身智能赛道投资首秀,继续加码人形机器人赛道布局。 2025年3月31日,具身智能机器人头部创企【千寻智能&#x…...
GitHub 趋势日报 (2025年05月11日)
本日报由 TrendForge 系统生成 https://trendforge.devlive.org/ 🌐 本日报中的项目描述已自动翻译为中文 📈 今日整体趋势 Top 10 排名项目名称项目描述今日获星总星数语言1harry0703/MoneyPrinterTurbo利用ai大模型,一键生成高清短视频使用…...
MySQL查询优化100条军规
概述 以下是MySQL查询优化的关键军规,分为不同类别,帮助您系统化提升数据库性能资料已经分类整理好,喜欢的朋友自取:https://pan.quark.cn/s/f52968c518d3 一、索引优化 为WHERE、JOIN、ORDER BY字段建索引联合索引遵循最左前缀…...
WEBSTORM前端 —— 第3章:移动 Web —— 第1节:平面转换、渐变
目录 一.平面转换 二.平面转换 – 平移 ①属性 ②取值 ③技巧 三.平移实现居中效果 四.案例——双开门效果 五.平面转换 – 旋转 ①属性 ②技巧 六.平面转换 – 改变转换原点 ①属性 ②取值 七.案例-时钟 八.平面转换 – 多重转换 九.平面转换 – 缩放 ①属性 …...
1.10-数据传输格式
1.10-数据传输格式 在对网站进行渗透测试时,使用目标服务器规定的数据传输格式来进行 payload 测试非常关键 如果不按规定格式发送数据,服务器可能直接拒绝请求或返回错误响应,比如: 接口要求 JSON 格式,而你用的是…...
Python制作Dashboard【待续】
运行环境:jupyter notebook (python 3.12.7)...
物理:海市蜃楼是宇宙背景辐射吗?
宇宙背景辐射(特别是宇宙微波背景辐射,CMB)与海市蜃楼是两种完全不同的现象,它们的物理机制、来源和科学意义截然不同。以下是详细的解释: 1. 宇宙微波背景辐射(CMB)的本质 起源:CMB是大爆炸理论的关键证据之一。它形成于宇宙诞生后约38万年(即“最后散射时期”),当…...
联想 SR550 服务器,配置 RAID 5教程!
今天的任务,是帮客户的一台联想Lenovo thinksystem x SR550 服务器,配置RAID 5,并安装windows server 2019操作系统。那么依然是按照我的个人传统,顺便做一个教程,分享给有需要的粉丝们。 第一步,服务器开机…...
Docker-配置私有仓库(Harbor)
配置私有仓库(Harbor) 一、环境准备安装 Docker 三、安装docker-compose四、准备Harbor五、配置证书六、部署配置Harbor七、配置启动服务八、定制本地仓库九、测试本地仓库 Harbor(港湾),是一个用于 存储 和 分发 Docker 镜像的企业级 Regi…...
1.5 连续性与导数
一、连续性的底层逻辑(前因) 为什么需要研究连续性? 数学家在研究函数图像时发现两类现象:有些函数能用一笔画完不断开(如抛物线),有些则会出现"断崖"“跳跃"或"无底洞”&a…...
Day22打卡-复习
复习日 仔细回顾一下之前21天的内容,没跟上进度的同学补一下进度。 作业: 自行学习参考如何使用kaggle平台,写下使用注意点,并对下述比赛提交代码 泰坦尼克号人员生还预测https://www.kaggle.com/competitions/titanic/overview K…...
配置Hadoop集群环境准备
(一)Hadoop的运行模式 一共有三种: 本地运行。伪分布式完全分布式 (二)Hadoop的完全分布式运行 要模拟这个功能,我们需要做好如下的准备。 1)准备3台客户机(关闭防火墙、静态IP、…...
HTTPS全解析:从证书签发到TLS握手优化
HTTPS(超文本传输安全协议 本质上是HTTP的安全版本。标准的HTTP协议仅规范了客户端与服务器之间的通信格式,但所有数据传输都是明文的,容易被中间人窃听和篡改。HTTPS通过加密传输数据解决了这一安全问题。 HTTPS可以理解为"HTTPTLS/SS…...
#将一个 .c 文件转变为可直接运行的文件过程及原理
将一个 .c 文件(C语言源代码)转变为可直接运行的可执行文件,涉及从源代码到机器码的编译和链接过程。以下是详细的过程与原理,分为步骤说明: 一、总体流程 .c 文件到可执行文件的过程通常包括以下几个阶段:…...
【软件学习】GeneMiner 2:系统发育基因组学的一体化全流程分析工具
【软件学习】GeneMiner 2—— 系统发育基因组学的一体化全流程分析工具 文章目录 【软件学习】GeneMiner 2—— 系统发育基因组学的一体化全流程分析工具前言一、软件了解二、软件安装三、软件使用示例演示3.1 快速掌握使用方法3.2 获取质体基因组和质体基因3.3 单拷贝基因建树…...
聊一聊AI对接口测试的潜在影响有哪些?
目录 一、 自动化测试用例生成 二、 缺陷预测与根因分析 三、自适应测试维护 四、实时监控与自适应优化 五、 性能与安全测试增强 六、测试结果分析与报告 七、持续测试与DevOps集成 八、挑战与局限性 九、未来趋势 使用AI可以自动化测试用例生成、异常检测、结果分析…...
wordcount在mapreduce的例子
1.启动集群 2.创建项目 项目结构为: 3.pom.xml文件为 <project xmlns"http://maven.apache.org/POM/4.0.0" xmlns:xsi"http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation"http://maven.apache.org/POM/4.0.0 http://mave…...
CSS3 遮罩
在网页设计中,我们经常需要实现一些特殊的视觉效果来增强用户体验。CSS3 遮罩(mask)允许我们通过控制元素的可见区域来创建各种精美的视觉效果。本文将带你全面了解 CSS3 遮罩的功能和应用。 什么是 CSS3 遮罩? CSS3 遮罩是一种…...
HTTP协议解析:Session/Cookie机制与HTTPS加密体系的技术演进(一)
一.HTTP协议 我们上篇文章已经提到了对于自定义协议的序列化与反序列化。那么有没有什么比较成熟的,大佬们写的应用层协议,供我们参考使用呢?HTTP(超文本传输协议)就是其中之一。 在互联网世界中, HTTP(HyperText Transfer Prot…...
Matlab 234-锂电池充放电仿真
1、内容简介 Matlab 234-锂电池充放电仿真 可以交流、咨询、答疑 2、内容说明 略 锂离子电池已经广泛应用于我国目前电子产品市场,当下手机市场和新能源市场对于锂离子电池的大量需求,推动了锂离子电池的发展,我国已经成为世界上锂离子电池…...
std::move 和 std::forward
关联点 都是执行转换(cast)的函数(函数模板),不产生任何可执行代码。且都可以把实参转换成右值。 std::move无条件将实参(const除外 )转换成右值引用,std::forward 条件返回右值引用 _EXPORT_STD template…...
工业协议跨界实录:零基础玩转PROFINET转EtherCAT主站智能网关
工业自动化领域的金字塔就是工业通信行业,用的最多的便是协议转换模块,通俗来说,网关就像一个“语言翻译器”,能把一种通信语言转换成另一种,满足实际通信需求,还能保护投资。PROFINET 转EtherCAT 网关WL-P…...
开源链动2+1模式AI智能名片S2B2C商城小程序赋能新微商服务能力升级研究
摘要:本文聚焦新微商服务能力升级路径,探讨开源链动21模式、AI智能名片与S2B2C商城小程序在重构培训体系、激励机制及用户服务中的协同作用。研究显示,新微商通过“技术赋能-机制创新-服务深化”三维变革,将传统微商的“产品压货”…...