Elasticsearch(ES)基础查询语法的使用
1. Match Query (全文检索查询)
-
用于执行全文检索,适合搜索文本字段。
{
“query”: {
“match”: {
“field”: “value”
}
}
} -
match_phrase:精确匹配短语,适合用于短语搜索。
{
“query”: {
“match_phrase”: {
“field”: “text”
}
}
}
2. Term Query (精确匹配查询)
-
用于对某个字段的精确值进行查询,常用于不分词的字段(如ID、标签、关键词等)。
{
“query”: {
“term”: {
“field”: “value”
}
}
}
3. Range Query (范围查询)
-
用于查询数值、日期、时间等范围内的数据。
{
“query”: {
“range”: {
“field”: {
“gte”: 10, // 大于等于
“lte”: 100, // 小于等于
“gt”: 10, // 大于
“lt”: 100 // 小于
}
}
}
}
4. Bool Query (布尔查询)
-
用于将多个查询组合在一起,可以使用 must、should、must_not 等操作符。
{
“query”: {
“bool”: {
“must”: [
{ “match”: { “field1”: “value1” } },
{ “match”: { “field2”: “value2” } }
],
“filter”: [
{ “range”: { “price”: { “gte”: 50 } } }
],
“should”: [
{ “match”: { “field3”: “value3” } }
],
“must_not”: [
{ “term”: { “field4”: “value4” } }
]
}
}
}
5. Prefix Query (前缀匹配查询)
-
用于查询字段值的前缀匹配,常用于搜索补全或模糊搜索。
{
“query”: {
“prefix”: {
“field”: “prefix_value”
}
}
}
6. Wildcard Query (通配符查询)
-
支持
*
(匹配任意字符)和?
(匹配单个字符)的通配符查询。{
“query”: {
“wildcard”: {
“field”: “prefix*”
}
}
}
7. Fuzzy Query (模糊查询)
-
用于查询与某个值相似的字段,常用于容忍拼写错误的场景。
{
“query”: {
“fuzzy”: {
“field”: {
“value”: “exampl”
}
}
}
}
8. Regexp Query (正则表达式查询)
-
使用正则表达式进行查询。
{
“query”: {
“regexp”: {
“field”: “pattern.*”
}
}
}
9. Match All Query (匹配所有文档)
-
用于返回索引中的所有文档。
{
“query”: {
“match_all”: {}
}
}
10. Term Range Query (字段范围查询)
-
用于查询一个字段值在特定范围内的文档,类似
range query
,但term
查询是基于精确值的。{
“query”: {
“range”: {
“field”: {
“gte”: 5,
“lte”: 10
}
}
}
}
11. Exists Query (字段存在查询)
-
用于查询某个字段是否存在。
{
“query”: {
“exists”: {
“field”: “field_name”
}
}
}
12. Geo Queries (地理位置查询)
-
Elasticsearch 支持基于地理位置的查询,如基于位置的范围查询或距离查询。
-
Geo Distance Query
{
“query”: {
“bool”: {
“filter”: {
“geo_distance”: {
“distance”: “200km”,
“location”: {
“lat”: 40.73,
“lon”: -74.1
}
}
}
}
}
}
13. Aggregation (聚合查询)
-
Elasticsearch 提供了强大的聚合功能,可以对查询结果进行分组、统计等操作。
-
Terms Aggregation (分词聚合)
{
“aggs”: {
“group_by_field”: {
“terms”: {
“field”: “field_name”
}
}
}
} -
Range Aggregation (范围聚合)
{
“aggs”: {
“price_ranges”: {
“range”: {
“field”: “price”,
“ranges”: [
{ “to”: 100 },
{ “from”: 100, “to”: 200 },
{ “from”: 200 }
]
}
}
}
}
14. Highlighting (高亮查询)
-
用于返回搜索结果中高亮显示匹配的字段。
{
“query”: {
“match”: {
“field”: “value”
}
},
“highlight”: {
“fields”: {
“field”: {}
}
}
}
15. Source Filtering (源字段过滤)
-
用于控制哪些字段需要返回,哪些不需要返回。
{
“_source”: [“field1”, “field2”],
“query”: {
“match”: {
“field”: “value”
}
}
}
16. Prefix and Wildcard Query (前缀和通配符查询)
-
用于对字段值进行前缀或通配符匹配,常用于实现补全或模糊搜索。
{
“query”: {
“prefix”: {
“field”: “prefix*”
}
}
}
扩展*
匹配度查询
在 Elasticsearch 中,minimum_should_match
是布尔查询(bool
query)的一部分,用于控制 should
子句的匹配度。should
子句的作用是定义一组可选条件,当文档满足其中至少一个条件时,它会被视为匹配。通过设置 minimum_should_match
参数,可以控制至少多少个 should
子句必须匹配,以提高查询的精度和灵活性。
1. 基本概念:
- 在布尔查询中,
should
子句表示可选条件。 - 默认情况下,如果
bool
查询中有多个should
子句,文档只需满足其中任何一个条件就可以匹配。 - 使用
minimum_should_match
参数,可以要求文档至少满足某些数量的should
子句,以增加查询的严格性。
例如:如果你有 5 个 should
子句,并设置 minimum_should_match
为 3,则文档必须满足其中至少 3 个 should
条件才能被视为匹配。
2. 用法:
minimum_should_match
可以设置为:
- 整数值:指定最小匹配的
should
子句数量。 - 百分比:指定至少要匹配的
should
子句的百分比。 - 动态值:例如基于文档数量或其他复杂逻辑的动态匹配要求。
3. 示例:
(1) 简单的布尔查询 - 至少匹配 2 个 should
子句
{"query": {"bool": {"should": [{ "match": { "field1": "value1" } },{ "match": { "field2": "value2" } },{ "match": { "field3": "value3" } }],"minimum_should_match": 2 // 至少匹配 2 个 `should` 子句}}
}
- 在这个例子中,文档需要匹配至少 2 个
should
子句(例如,匹配field1
和field2
或者field2
和field3
)。
(2) 使用百分比的 minimum_should_match
如果你有多个 should
子句,可以通过百分比来控制匹配条件。例如,如果你有 5 个 should
子句,设置 minimum_should_match
为 60%,则至少需要满足 3 个子句。
{"query": {"bool": {"should": [{ "match": { "field1": "value1" } },{ "match": { "field2": "value2" } },{ "match": { "field3": "value3" } },{ "match": { "field4": "value4" } },{ "match": { "field5": "value5" } }],"minimum_should_match": "60%" // 至少匹配 60% 的 `should` 子句 (即 3 个子句)}}
}
(3) 动态匹配 - 基于词数的 minimum_should_match
还可以根据查询中的词数设置 minimum_should_match
,比如设置为 "3<80%"
,表示如果查询中有 3 个以上的 should
子句,则至少匹配其中 80%的子句。
{"query": {"bool": {"should": [{ "match": { "field1": "value1" } },{ "match": { "field2": "value2" } },{ "match": { "field3": "value3" } },{ "match": { "field4": "value4" } },{ "match": { "field5": "value5" } }],"minimum_should_match": "3<80%" // 如果有超过 3 个 `should` 子句,至少匹配 80%}}
}
4. 如何决定 minimum_should_match
值
- 业务需求:设置
minimum_should_match
的主要目的是根据业务需求平衡准确度和召回率。如果你需要更严格的匹配,增加minimum_should_match
的值;如果需要更高的召回率,可以减少它。 - 文档内容:在处理文档时,字段的长度、词汇密度、停用词等都可能影响查询的结果。可以通过实验和调整
minimum_should_match
来找到最适合的设置。
5. 示例:
假设你有以下文档数据:
{"field1": "apple orange banana","field2": "apple orange","field3": "banana"
}
你要查找包含 “apple” 和 “orange” 的文档,并且需要设置 minimum_should_match
为 1。查询语句如下:
{"query": {"bool": {"should": [{ "match": { "field1": "apple" } },{ "match": { "field1": "orange" } },{ "match": { "field1": "banana" } }],"minimum_should_match": 1}}
}
在这个例子中,只要文档匹配一个 should
子句(比如 field1
包含 “apple” 或者 “orange”),就会被视为匹配。
6. 注意事项
minimum_should_match
在布尔查询中是可选的,只有当你使用了多个should
子句时才有意义。- 设置的值越大,匹配条件越严格。通过调整
minimum_should_match
的值,可以灵活地调整查询的宽松程度。 minimum_should_match
参数可以通过数值、百分比、动态规则来设置,以适应不同的查询需求。
7. Match 查询的选项
(1) fuzziness
:模糊匹配
如果你希望支持拼写错误或词语变化,可以使用 模糊查询。通过设置 fuzziness
,Elasticsearch 会尝试匹配与查询词相似的词。
{"query": {"match": {"title": {"query": "Elasticsearh", // 拼写错误"fuzziness": "AUTO" // 自动模糊匹配}}}
}
fuzziness: "AUTO"
:根据查询词的长度自动设置模糊匹配的编辑距离。fuzziness: "1"
:设置允许的最大编辑距离为 1(允许 1 个字符的更改,如替换、删除、插入)。
(2) minimum_should_match
:最小匹配
在某些情况下,你可能想要求查询中至少匹配一个或多个词。minimum_should_match
可以控制需要匹配的最小词数。
{"query": {"match": {"content": {"query": "Elasticsearch tutorial advanced","minimum_should_match": 2 // 至少匹配 2 个词也可以用百分比替代示例:"60%"(指匹配总分词的百分比)}}}
}
minimum_should_match
:设置至少要匹配多少个词。
(3) boost
:提高某个词的匹配优先级
你可以通过 boost
来提高查询某些词的权重,使这些词匹配的文档更具优先级。
{"query": {"match": {"content": {"query": "Elasticsearch tutorial","boost": 2.0 // 增加查询的权重,使该查询匹配的文档优先返回}}}
}
boost
:提高查询的匹配优先级,权重范围通常是 0 到 10,数值越大,匹配的优先级越高。
** match
查询常见问题**
(1) 如何处理大小写问题?
默认情况下,match
查询不区分大小写。Elasticsearch 会使用分词器(如 standard
分词器)将文本转为小写,因此可以处理大小写问题。
(2) match
查询与 term
查询的区别
match
查询:适用于文本字段的分词匹配,会分析查询文本并与字段内容进行分词对比。term
查询:用于精确匹配,适用于不分词的字段(如keyword
字段)。
聚合相关
在 Elasticsearch 中,**聚合(Aggregation)**是一个强大的功能,用于对查询结果进行分组、统计、度量等操作。聚合查询不仅可以按字段进行分组,还可以进行计算(如求和、平均值等),在数据分析和可视化中非常有用。聚合查询和普通查询(例如 match
、range
查询)是分开的,但可以结合使用。
1. 聚合查询的基本结构
聚合查询通常包含在 aggs
(聚合)部分。在 Elasticsearch 中,聚合查询并不返回实际的文档,而是返回聚合结果,例如每个分组的文档数量、平均值、最大值等。
聚合查询的基本结构:
{"query": {"match": {"field": "value"}},"aggs": {"aggregation_name": {"aggregation_type": {"field": "field_name"}}}
}
2. 常见的聚合类型
以下是 Elasticsearch 中常见的聚合类型:
(1) Terms 聚合(分词聚合)
按字段值进行分组统计,返回每个字段值及其出现次数。常用于进行分组查询。
{"query": {"match_all": {}},"aggs": {"group_by_field": {"terms": {"field": "field_name"}}}
}
示例:
假设你有一个名为 category
的字段,你想按类别进行分组查询,统计每个类别的文档数量。
{"query": {"match_all": {}},"aggs": {"categories": {"terms": {"field": "category.keyword" // 使用 .keyword 进行精确匹配}}}
}
(2) Range 聚合(范围聚合)
用于按指定的数值范围对文档进行分组。适用于数值、日期等字段。
{"query": {"match_all": {}},"aggs": {"price_ranges": {"range": {"field": "price","ranges": [{ "to": 50 },{ "from": 50, "to": 100 },{ "from": 100 }]}}}
}
示例:
假设你想要按价格进行分段统计,例如分为“低于 50”、“50 到 100”以及“大于 100”三个区间。
(3) Avg 聚合(平均值聚合)
用于计算字段的平均值。
{"query": {"match_all": {}},"aggs": {"average_price": {"avg": {"field": "price"}}}
}
示例:
计算 price
字段的平均值。
(4) Sum 聚合(求和聚合)
用于计算字段的总和。
{"query": {"match_all": {}},"aggs": {"total_price": {"sum": {"field": "price"}}}
}
示例:
计算 price
字段的总和。
(5) Max 和 Min 聚合(最大值和最小值聚合)
用于计算字段的最大值和最小值。
{"query": {"match_all": {}},"aggs": {"max_price": {"max": {"field": "price"}},"min_price": {"min": {"field": "price"}}}
}
示例:
计算 price
字段的最大值和最小值。
(6) Date Histogram 聚合(日期直方图聚合)
将日期数据按时间段进行分组,常用于按天、周、月等时间单位进行聚合。
{"query": {"match_all": {}},"aggs": {"sales_over_time": {"date_histogram": {"field": "timestamp","calendar_interval": "day" // 按天分组}}}
}
示例:
按天统计销售数据。
(7) Top Hits 聚合(获取 top N 文档)
获取符合条件的 top N 文档,通常用于获取聚合组中的部分文档,适用于展示最高分的文档。
{"query": {"match_all": {}},"aggs": {"top_categories": {"terms": {"field": "category.keyword"},"aggs": {"top_hits": {"top_hits": {"size": 3 // 返回每个类别下的前 3 个文档}}}}}
}
(8) Cardinality 聚合(基数聚合)
用于计算字段的基数(去重后的唯一值数量)。例如,统计不同的用户数或产品数。
{"query": {"match_all": {}},"aggs": {"unique_users": {"cardinality": {"field": "user_id"}}}
}
示例:
计算 user_id
字段中不重复的用户数量。
3. 聚合嵌套
聚合查询不仅可以进行单一聚合,还可以进行嵌套聚合,即在一个聚合的结果上进行进一步的聚合。下面是一个例子,展示如何在一个 terms
聚合的每个分组上执行进一步的聚合:
{"query": {"match_all": {}},"aggs": {"categories": {"terms": {"field": "category.keyword"},"aggs": {"avg_price": {"avg": {"field": "price"}}}}}
}
示例:
先按 category
分组,再计算每个类别的平均价格。
4. 聚合结果的格式
聚合查询的结果会包含在 aggregations
(或 aggs
)字段中。结果结构通常类似于下面的格式:
{"aggregations": {"categories": {"buckets": [{"key": "electronics", // 分组的字段值"doc_count": 100, // 每个分组的文档数量"avg_price": {"value": 300 // 每个分组的聚合结果,如平均价格}},{"key": "clothing","doc_count": 80,"avg_price": {"value": 50}}]}}
}
聚合结果:
buckets
:每个分组的结果集合。key
:分组的字段值。doc_count
:该分组中的文档数量。- 聚合结果(例如
avg_price
):聚合操作的结果。
5. 聚合的性能优化
- 避免过多的
terms
聚合:terms
聚合会对字段值进行分组,可能会消耗大量内存和计算资源。对于高基数字段(如用户ID),考虑限制返回的分组数量。 - 限制返回的文档数量:可以通过
size
参数来限制每个分组返回的文档数量,避免过多数据返回。 - 减少聚合的嵌套深度:过多层次的嵌套聚合会增加 Elasticsearch 的计算负担,尽量保持聚合的平面结构。
相关文章:
Elasticsearch(ES)基础查询语法的使用
1. Match Query (全文检索查询) 用于执行全文检索,适合搜索文本字段。 { “query”: { “match”: { “field”: “value” } } } match_phrase:精确匹配短语,适合用于短语搜索。 { “query”: { “match_phrase”: { “field”: “text” }…...
SpringCloud系列教程:微服务的未来(十四)网关登录校验、自定义过滤器GlobalFilter、GatawayFilter
前言 在微服务架构中,API 网关扮演着至关重要的角色,负责路由请求、执行安全验证、流量控制等任务。Spring Cloud Gateway 作为一个强大的网关解决方案,提供了灵活的方式来实现这些功能。 本篇博客将重点介绍如何在 Spring Cloud Gateway 中…...
Android Studio:Linux环境下安装与配置
更多内容:XiaoJ的知识星球 Android Studio:Linux环境下安装与配置 1.安装JDK2.安装Android Studio2.1 获取安装包2.2 安装(1)配置环境变量:(2)运行安装:(3)配…...
使用AI生成金融时间序列数据:解决股市场的数据稀缺问题并提升信噪比
“GENERATIVE MODELS FOR FINANCIAL TIME SERIES DATA: ENHANCING SIGNAL-TO-NOISE RATIO AND ADDRESSING DATA SCARCITY IN A-SHARE MARKET” 论文地址:https://arxiv.org/pdf/2501.00063 摘要 金融领域面临的数据稀缺与低信噪比问题,限制了深度学习在…...
【银河麒麟高级服务器操作系统】业务访问慢网卡丢包现象分析及处理过程
了解更多银河麒麟操作系统全新产品,请点击访问 麒麟软件产品专区:product.kylinos.cn 开发者专区:developer.kylinos.cn 文档中心:document.kylinos.cn 交流论坛:forum.kylinos.cn 服务器环境以及配置 【内核版本…...
如何将数据库字符集改为中文,让今后所有的数据库都支持中文
最后一行有我自己的my.ini文件 数据库输入中文数据时会变为乱码, 这个时候,我们为每个数据库设置字符集,太过于麻烦,为数据库单独设置重启后又会消失 Set character_set_database’utf8’; Set character_set_server’utf8’; …...
Linux-C/C++--深入探究文件 I/O (下)(文件共享、原子操作与竞争冒险、系统调用、截断文件)
经过上一章内容的学习,了解了 Linux 下空洞文件的概念;open 函数的 O_APPEND 和 O_TRUNC 标志;多次打开同一文件;复制文件描述符;等内容 本章将会接着探究文件IO,讨论如下主题内容。 文件共享介绍&…...
Linux Bash 中使用重定向运算符的 5 种方法
注:机翻,未校。 Five ways to use redirect operators in Bash Posted: January 22, 2021 | by Damon Garn Redirect operators are a basic but essential part of working at the Bash command line. See how to safely redirect input and output t…...
opengrok_windows_环境搭建
目录 软件列表 软件安装 工程索引 编辑 工程部署 问题列表 软件列表 软件名下载地址用途JDKhttps://download.java.net/openjdk/jdk16/ri/openjdk-1636_windows-x64_bin.zipindex 使用java工具tomcathttps://dlcdn.apache.org/tomcat/tomcat-9/v9.0.98/bin/apache-tom…...
【无法下载github文件】虚拟机下ubuntu无法拉取github文件
修改hosts来进行解决。 步骤一:打开hosts文件 sudo vim /etc/hosts步骤二:查询 github.com的ip地址 https://sites.ipaddress.com/github.com/#ipinfo将github.com的ip地址添加到hosts文件末尾,如下所示。 140.82.114.3 github.com步骤三…...
python——句柄
一、概念 句柄指的是操作系统为了标识和访问对象而提供的一个标识符,在操作系统中,每个对象都有一个唯一的句柄,通过句柄可以访问对象的属性和方法。例如文件、进程、窗口等都有句柄。在编程中,可以通过句柄来操作这些对象&#x…...
.Net Core微服务入门系列(一)——项目搭建
系列文章目录 1、.Net Core微服务入门系列(一)——项目搭建 2、.Net Core微服务入门全纪录(二)——Consul-服务注册与发现(上) 3、.Net Core微服务入门全纪录(三)——Consul-服务注…...
Net Core微服务入门全纪录(三)——Consul-服务注册与发现(下)
系列文章目录 1、.Net Core微服务入门系列(一)——项目搭建 2、.Net Core微服务入门全纪录(二)——Consul-服务注册与发现(上) 3、.Net Core微服务入门全纪录(三)——Consul-服务注…...
[苍穹外卖] 1-项目介绍及环境搭建
项目介绍 定位:专门为餐饮企业(餐厅、饭店)定制的一款软件产品 功能架构: 管理端 - 外卖商家使用 用户端 - 点餐用户使用 技术栈: 开发环境的搭建 整体结构: 前端环境 前端工程基于 nginx 运行 - Ngi…...
【PCIe 总线及设备入门学习专栏 2 -- PCIe 的 LTSSM 和 Enumeration】
文章目录 OverviewLTSSM StatesDetect StatesDETECT_QUIETDETECT_ACTDETECT_WAITPolling StatesPOLL_ACTIVEPOLL_CONFIGPOLL_COMPLIANCEConfiguration StatesCONFIG_LINKWD_STARTCONFIG_LINKWD_ACCEPTCONFIG_LANENUM_WAITCONFIG_LANENUM_ACCEPTCONFIG_COMPLETECONFIG_IDLERecov…...
Redis 性能优化:多维度技术解析与实战策略
文章目录 1 基准性能2 使用 slowlog 优化耗时命令3 big key 优化4 使用 lazy free 特性5 缩短键值对的存储长度6 设置键值的过期时间7 禁用耗时长的查询命令8 使用 Pipeline 批量操作数据9 避免大量数据同时失效10 客户端使用优化11 限制 Redis 内存大小12 使用物理机而非虚拟机…...
QT开发技术 【基于TinyXml2的对类进行序列化和反序列化】一
一、对TinyXml2 进行封装 使用宏 实现序列化和反序列化 思路: 利用宏增加一个类函数,使用序列化器调用函数进行序列化 封装宏示例 #define XML_SERIALIZER_BEGIN(ClassName) \ public: \virtual void ToXml(XMLElement* parentElem, bool bSerialize …...
麦田物语学习笔记:创建TransitionManager控制人物场景切换
基本流程 制作场景之间的切换 1.代码思路 (1)为了实现不同场景切换,并且保持当前的persistentScene一直存在,则需要一个Manager去控制场景的加载和卸载,并且在加载每一个场景之后,都要将当前的场景Set Active Scene,保证其为激活的场景,在卸载的时候也可以方便调用当前激活的场…...
2025年最新汽车零部件企业销售项目管理解决方案
在汽车零部件企业,销售项目管理的不规范和销售预测的不准确性常导致生产计划无法及时调整,因此客户关系常常中断,导致企业业务机会的丧失。为解决该问题,企业需要投入更多资源以优化销售流程与销售预测。 1、360多维立体客户视图…...
创建基于Prism框架的WPF应用(NET Framework)项目
创建基于Prism框架的WPF应用(NET Framework)项目 1、创建WPF(NET Framework)项目并整理结构 (1)、创建WPF(NET Framework)项目; (2)、添加Views和…...
AIGC视频生成模型:Meta的Emu Video模型
大家好,这里是好评笔记,公主号:Goodnote,专栏文章私信限时Free。本文详细介绍Meta的视频生成模型Emu Video,作为Meta发布的第二款视频生成模型,在视频生成领域发挥关键作用。 🌺优质专栏回顾&am…...
【PowerQuery专栏】PowerQuery提取XML数据
XML数据和Json 数据类型都是比较典型的层次数据类型,XML的数据格式非常的对称。所有的数据均是由标签对组成,图为典型的XML文件类型的数据。 在PowerQuery中进行XML数据类型解析采用的是Xml.Document 函数来进行文件内容的解析,Xml.Document 目前有三个可用参数。 参数1为数…...
流行的开源高性能数据同步工具 - Apache SeaTunnel 整体架构运行原理
概述 背景 数据集成在现代企业的数据治理和决策支持中扮演着至关重要的角色。随着数据源的多样化和数据量的迅速增长,企业需要具备强大的数据集成能力来高效地处理和分析数据。SeaTunnel通过其高度可扩展和灵活的架构,帮助企业快速实现多源数据的采集、…...
基于单片机的多功能蓝牙语音智能台灯(论文+源码)
1总体方案设计 通过需求分析,本设计多功能蓝牙语音智能台灯的系统框图如图2.1所示,系统架构包括主控制器STM32F103单片机、HC-06蓝牙通信模块、LU-ASR01语音识别模块、OLED液晶、LED灯、按键等器件,在使用时用户可以通过手机APP、语音识别、…...
leetcode刷题记录(七十二)——146. LRU 缓存
(一)问题描述 146. LRU 缓存 - 力扣(LeetCode)146. LRU 缓存 - 请你设计并实现一个满足 LRU (最近最少使用) 缓存 [https://baike.baidu.com/item/LRU] 约束的数据结构。实现 LRUCache 类: * LRUCache(int capacity)…...
力扣203题(3)
题目及之前的两种解法大家可以移步到这里: https://blog.csdn.net/suibiansa_/article/details/145242573?spm1001.2014.3001.5501 力扣203题—— 移除链表元素-CSDN博客 今天呢我们来写一下第三种解法: 虚拟创建一个头结点 ListNode firstnew Lis…...
网络安全:信息时代的守护者
随着互联网的快速发展,网络安全问题日益成为全球关注的焦点。无论是个人用户、企业组织还是政府部门,网络安全都已成为保障信息安全、保护隐私、确保社会秩序的基石。在这个数字化时代,如何应对复杂多变的网络安全威胁,成为了我们…...
【博客之星2024年度总评选】年度回望:我的博客之路与星光熠熠
【个人主页】Francek Chen 【人生格言】征途漫漫,惟有奋斗! 【热门专栏】大数据技术基础 | 数据仓库与数据挖掘 | Python机器学习 文章目录 前言一、个人成长与盘点(一)机缘与开端(二)收获与分享 二、年度创…...
接口自动化测试
APITEST: 接口自动化测试 目录结构介绍: conf目录:用来存放项目运行环境、执行环境相关的配置参数 testsuite目录:测试用例在此目录编写,pytest默认约定test开头的文件和方法为测试用例,不满足条件的不会被执行&#x…...
题海拾贝:力扣 138.随机链表的复制
Hello大家好!很高兴我们又见面啦!给生活添点passion,开始今天的编程之路! 我的博客:<但凡. 我的专栏:《编程之路》、《数据结构与算法之美》、《题海拾贝》 欢迎点赞,关注! 1、题…...
第7章:Python TDD测试Franc对象乘法功能
写在前面 这本书是我们老板推荐过的,我在《价值心法》的推荐书单里也看到了它。用了一段时间 Cursor 软件后,我突然思考,对于测试开发工程师来说,什么才更有价值呢?如何让 AI 工具更好地辅助自己写代码,或许…...
PyTorch基本功能与实现代码
PyTorch是一个开源的深度学习框架,提供了丰富的函数和工具,以下为其主要功能的归纳: 核心数据结构: • 张量(Tensor):类似于Numpy的ndarray,是PyTorch中基本的数据结构,…...
【2024 CSDN博客之星】技术洞察类:从DeepSeek-V3的成功,看MoE混合专家网络对深度学习算法领域的影响(MoE代码级实战)
目录 一、引言 1.1 本篇文章侧重点 1.2 技术洞察—MoE(Mixture-of-Experts,混合专家网络) 二、MoE(Mixture-of-Experts,混合专家网络) 2.1 技术原理 2.2 技术优缺点 2.3 业务代码实践 2.3.1 业务场…...
Single-Model and Any-Modality for Video Object Tracking——2024——cvpr-阅读笔记
Single-Model and Any-Modality for Video Object Tracking 摘要相关工作创新处MethodShared embeddingModal promptingRGB Tracker based on TransformerOverall ExperiimentDatasetRGB-D samples are sourced from DepthTrackRGB-T samples are extracted from LasHeRRGB-E s…...
Java中的构造器
Java中的构造器详解 1. 什么是构造器 构造器(Constructor) 是一种特殊的方法,用于在创建对象时初始化对象的状态。构造器的名字必须与类名相同,且没有返回类型,连 void 也不能使用。 2. 构造器的特点 名称与类名相同…...
Restormer: Efficient Transformer for High-Resolution Image Restoration解读
论文地址:Restormer: Efficient Transformer for High-Resolution Image Restoration。 摘要 由于卷积神经网络(CNN)在从大规模数据中学习可推广的图像先验方面表现出色,这些模型已被广泛应用于图像复原及相关任务。近年来&…...
将 AzureBlob 的日志通过 Azure Event Hubs 发给 Elasticsearch(3.纯python的实惠版)
前情: 将 AzureBlob 的日志通过 Azure Event Hubs 发给 Elasticsearch(1.标准版)-CSDN博客 将 AzureBlob 的日志通过 Azure Event Hubs 发给 Elasticsearch(2.换掉付费的Event Hubs)-CSDN博客 python脚本实现 厉害的…...
成就与远见:2024年技术与思维的升华
个人主页:chian-ocean 前言: 2025年1月17日,2024年博客之星年度评选——创作影响力评审的入围名单公布。我很荣幸能够跻身Top 300,虽然与顶尖博主仍有一定差距,但这也为我提供了更加明确的发展方向与指引。展望崭新的2025年&…...
BGP分解实验·9——路由聚合与条件性通告(1)
路由聚合是有效控制缩减BGP路由表的方法之一,路由聚合的前提和IGP一样,需要有路由目标存在BGP表中,与IGP不同的是,BGP路由聚合可以定义按需抑制路由的能力。 实验拓扑如下所示: 现在开始把从R1的R5的基础配置先准备好…...
栈和队列(C语言)
目录 数据结构之栈 定义 实现方式 基本功能实现 1)定义,初始化栈 2)入栈 3)出栈 4)获得栈顶元素 5)获得栈中有效元素个数 6)检测栈是否为空 7)销毁栈 数据结构之队列 定义 实现方…...
Jenkins-获取build用户信息
需求: 代码发布后,将发布结果发送至相关运维同学邮箱,需要获取发布人的信息。jenkins默认是没有相关内置变量的。 需要通过插件的方式进行解决: 插件: user build vars plugin 部署后,可使用的变量&…...
大数据学习(37)- Flink运行时架构
&&大数据学习&& 🔥系列专栏: 👑哲学语录: 承认自己的无知,乃是开启智慧的大门 💖如果觉得博主的文章还不错的话,请点赞👍收藏⭐️留言📝支持一下博主哦ᾑ…...
opengrok_windows_多工程环境搭建
目录 多工程的目录 工程代码下载和log配置 工程的索引 工程部署 工程测试 参考列表 多工程的目录 工程代码下载和log配置 工程代码下载 在每个工程的src目录下,下载工程代码,以下载pulseaudio的代码为例。 git clone gitgithub.com…...
Python网络自动化运维---SSH模块
目录 SSH建立过程 实验环境准备 一.SSH模块 1.1.Paramiko模块 1.1.1实验代码 1.1.2代码分段讲解 1.1.3代码运行过程 1.2Netmiko模块 Netmiko模块对比paramiko模块的改进: 1.2.1实验代码 1.2.2代码分段讲解 1.2.3代码运行过程 二.Paramiko模块和Ne…...
Failed to restart nginx.service Unit nginx.service not found
当你遇到 Failed to restart nginx.service: Unit nginx.service not found 错误时,这意味着系统无法找到 Nginx 的服务单元文件。这通常是因为 Nginx 没有通过 systemd 管理,或者 Nginx 没有正确安装。 解决方法 1. 检查 Nginx 是否正确安装 首先&am…...
学习记录之原型,原型链
构造函数创建对象 Person和普通函数没有区别,之所以是构造函数在于它是通过new关键字调用的,p就是通过构造函数Person创建的实列对象 function Person(age, name) {this.age age;this.name name;}let p new Person(18, 张三);prototype prototype n…...
【Redis】5种基础数据结构介绍及应用
考察频率难度60%⭐⭐ 这个方向的问题也是非常基础的,所以一般不会直接被当做一个单独的问题。常见的形式是结合你简历上的项目或者场景题来提问,即实际应用场景、是否可以优化、如何选择等。 由于场景题和实际项目差异较大,所以本文就只做基…...
基于GRU实现股价多变量时间序列预测(PyTorch版)
前言 系列专栏:【深度学习:算法项目实战】✨︎ 涉及医疗健康、财经金融、商业零售、食品饮料、运动健身、交通运输、环境科学、社交媒体以及文本和图像处理等诸多领域,讨论了各种复杂的深度神经网络思想,如卷积神经网络、循环神经网络、生成对抗网络、门控循环单元、长短期记…...
Java Web开发高级——Spring Boot与Docker容器化部署
随着云计算和微服务架构的快速发展,容器化已成为现代应用部署的重要手段。Docker作为最受欢迎的容器化技术之一,使得开发者能够将应用及其所有依赖打包到一个可移植的容器中,简化了开发、测试、部署和运维的流程。本篇文章将通过以下内容讲解…...
计算机网络——网络层
重点内容: (1) 虚拟互连网络的概念。 (2) IP 地址与物理地址的关系。 (3) 传统的分类的 IP 地址(包括子网掩码)和无分类域间路由选择 CIDR 。 (4) 路由选择协议的工作原理。 目录 重点内容: 一.网络层提供的两种服务 二…...