ElasticSearch--DSL查询语句

ElasticSearch


DSL查询文档

分类

查询类型功能描述典型应用场景示例语法
查询所有匹配所有文档,无过滤条件数据预览/测试json { "query": { "match_all": {} } }
全文检索查询对文本字段分词后匹配,基于倒排索引搜索框模糊匹配、多字段搜索json { "query": { "match": { "title": "Elasticsearch指南" } } }
精确查询直接匹配未经分词的字段值(keyword/数值/日期等)状态过滤、范围筛选、精确ID查询json { "query": { "term": { "status": "published" } } }
地理查询基于经纬度的空间位置计算附近地点搜索、地理围栏json { "query": { "geo_distance": { "distance": "10km", "location": "40,-70" } } }
复合查询组合多个查询条件,支持逻辑运算和自定义评分复杂业务场景(权重排序、多条件过滤)json { "query": { "bool": { "must": [ { "term": { "category": "tech" } } ] } } }

match_all---匹配所有文档

match_all查询是一个特殊的查询类型,它用于匹配索引中的所有文档,而不考虑任何特定的查询条件。

基本语法:

GET /<your-index-name>/_search
{
"query": {
   "match_all": {}
}
}

高级用法

您可以在matchall查询中添加额外的参数来控制搜索结果的显示,例如设置返回的文档数量(size)、开始返回的文档位置(from)、排序规则(sort)以及选择返回哪些字段(source)。

  • size返回指定条数

size 关键字: 指定查询结果中返回指定条数。 默认返回值10条

GET /employee/_search
{
  "query": {
   "match_all": {}
  },
  "size": 3  
}

  • from&size分页查询

size:显示应该返回的结果数量,默认是 10 from:显示应该跳过的初始结果数量,默认是 0 from 关键字用来指定起始返回位置,和size关键字连用可实现分页效果

GET /employee/_search
{
  "query": {
   "match_all": {}
  },
  "from": 0,
  "size": 5  
}

  • sort指定字段排序

指定查询结果的排序方式,是根据什么进行排序的

# 根据age排序
GET /employee/_search
{"query": {"match_all": {}},"sort": [{"age": "desc"}]
}
​
# 排序的同时进行分页
GET /employee/_search
{"query": {"match_all": {}},"sort": [{"age": "desc"}],"from": 2,"size": 5
}
  • _source返回源数据

指定查询之后返回的字段,定向显示需要的字段与屏蔽不需要的字段

GET /employee/_search
{
  "query": {
   "match_all": {}
  },
  "_source": ["name","address"]
}

精确匹配

精确匹配是指的是搜索内容不经过文本分析直接用于文本匹配,这个过程类似于数据库的SQL查询,搜索的对象大多是索引的非text类型字段。此类检索主要应用于结构化数据,如ID、状态和标签等。主要介绍一下term与terms、range的查询方式,因为使用的频率比较高。还有一些其它的精确匹配的类型在这里就不详细展开说明,在前面文章里面的脑图链接中有说明可以进行了解。

基本语法

①term查询

在Elasticsearch 8.x中,term查询用于执行精确匹配查询,它适用于未经过分词处理的keyword字段类型。

GET /{index_name}/_search
{
"query": {
   "term": {
     "{field.keyword}": {
       "value": "your_exact_value"
     }
   }
}
}

这里的{index_name}是你要查询的索引名称,{field.keyword}是你要匹配的字段名称,.keyword后缀表示该字段是一个keyword类型,用于存储精确匹配的数据。"value"是你要精确匹配的值

②terms查询

在Elasticsearch 8.x中,进行多值精确匹配时,可以使用terms查询。terms查询允许你指定一个字段,并匹配该字段中的多个精确值

GET /<index_name>/_search
{
"query": {
   "terms": {
     "<field_name>": [
       "value1",
       "value2",
       "value3",
       ...
     ]
   }
}
}

  • <index_name> 是你想要查询的索引名称。

  • <field_name> 是你想要对其执行terms查询的字段名。

  • 方括号内的值列表是你希望在查询中匹配的字段值

③range查询

在Elasticsearch 8.x中,进行精确范围查询时,可以使用range查询。

GET /<index_name>/_search
{
"query": {
   "range": {
     "<field_name>": {
       "gte": <lower_bound>,
       "lte": <upper_bound>,
       "gt": <greater_than_bound>,
       "lt": <less_than_bound>
     }
   }
}
}

  • <index_name> 是你想要查询的索引名称。

  • <field_name> 是你想要对其执行range查询的字段名。

  • gte 表示大于或等于(Greater Than or Equal)。

  • lte 表示小于或等于(Less Than or Equal)。

  • gt 表示严格大于(Greater Than)。

  • lt 表示严格小于(Less Than)。

  • <lower_bound>, <upper_bound>, <greater_than_bound>, <less_than_bound> 是指定的数值边界。

全文检索

全文检索查询旨在基于相关性搜索和匹配文本数据。这些查询会对输入的文本进行分析,将其拆分为词项(单个单词),并执行诸如分词、词干处理和标准化等操作。此类检索主要应用于非结构化文本数据,如文章和评论等。主要介绍一下match与multi_match的查询方式,因为使用的频率比较高。还有一些其它的全文检索类型在这里就不详细展开说明,在前面文章里面的脑图链接中有说明可以进行了解。

全文检索的关键特点:

  • 对输入的文本进行分析,并根据分析后的词项进行搜索和匹配。全文检索查询会对输入的文本进行分析,将其拆分为词项,并基于这些词项进行搜索和匹配操作。

  • 以相关性为基础进行搜索和匹配。全文检索查询使用相关性算法来确定文档与查询的匹配程度,并按照相关性进行排序。相关性可以基于词项的频率、权重和其他因素来计算。

  • 全文检索查询适用于包含自由文本数据的字段,例如文档的内容、文章的正文或产品描述等。

基本语法

①match查询

//match查询(跟据一个字段查询)
GET /<index_name>/_search
{
"query": {
    "match": {
      "<field_name>": "<query_string>"
    }
}
}

<index_name> 是你要搜索的索引名称。 <query_string> 是你要在多个字段中搜索的字符串。 <field1>, <field2>, ... 是你要搜索的字段列表。

②multi_match查询

//multi_match查询(跟据多个字段查询,字段越多查询效率越差)
GET /<index_name>/_search
{
"query": {
    "multi_match": {
      "query": "<query_string>",
      "fields": ["<field1>", "<field2>", ...]
    }
}
}

<index_name> 是你要搜索的索引名称。 <query_string> 是你要在多个字段中搜索的字符串。 <field1>, <field2>, ... 是你要搜索的字段列表

Boolean查询
  • 搜索上下文(Query Context):使用搜索上下文时,ElasticSearch需要计算每个文档与搜索条件的相关度得分,这个得分的计算需要使用一套复杂的计算公式有一定的性能开销,带文本分析的全文检索的查询语句很适合放在搜索上下文中

  • 过滤上下文(Filter Context):使用过滤上下文时,ElasticSearch只需要判断搜索条件根文档数据是否匹配。过滤上下文的查询不需要进行相关度得分计算还可以使用缓存加快响应的速度,很多术语级查询语句都适合放在过滤上下文中

特性搜索上下文(Query Context)过滤上下文(Filter Context)
作用计算文档相关性得分,影响排序结果判断文档是否匹配条件,不计算得分
性能计算成本较高(需计算相关性)高效(结果可缓存,无需计算得分)
典型使用场景全文检索、模糊匹配、需要结果排序的场景精确筛选(状态过滤、范围查询)、高频重复条件过滤
语法位置query 参数内(如 bool.mustbool.shouldfilter 参数内(如 bool.filterbool.must_not
缓存机制不缓存结果自动缓存结果(提升重复查询性能)

//must关键词
GET /books/_search
{"query": {"bool": {"must": [{"match": {"title": "java编程"}},{"match": {"description": "性能优化"}}]}}
}//should关键词
GET /books/_search
{"query": {"bool": {"should": [{"match": {"title": "java编程"}},{"match": {"description": "性能优化"}}],"minimum_should_match": 1}}
}//filter关键词
GET /books/_search
{"query": {"bool": {"filter": [{"term": {"language": "java"}},{"range": {"publish_time": {"gte": "2010-08-01"}}}]}}
}
地理查询

地理查询旨在跟据用户给出的地理位置信息来查询附近的目标资源的信息以及数量

基本语法

  • geo_bounding_box查询

查询地理坐标在框定的正方形区域内的目标资源,跟据左上经纬度(top_left)和右下经纬度(bottom_right)来构建区域方型,进而确定资源

  • geo_distance查询

查询以目标位置为圆心,指定路径为半径的圆形区域内的目标资源的信息

高亮显示

Elasticsearch 的高亮显示功能允许在搜索结果中突出显示匹配的关键词或短语,帮助用户快速定位相关信息。

GET /hotel/_search
{
  "query":{
    "搜索方式":{
      "字段名":"搜索内容"
    }
  },
  "highlight":{
    "fields":{
      "字段名":{
        "pre_tags":"<em>",  //用来标记高亮字段的前置标签
        "post_tags":"</em>" //用来标记高亮字段的后置标签
      },
      "字段名2":{
        "pre_tags":"<em>",   //用来标记高亮字段的前置标签
        "post_tags":"</em>", //用来标记高亮字段的后置标签
        "require_field_match":"false"
      }
    }
  }
}

示例演示

//使用自定义高亮显示来标识(可以)
GET /products/_search
{"query": {"multi_match": {"fields": ["name","desc"],"query": "牛仔"}},"highlight": {"post_tags": ["</span>"], "pre_tags": ["<span style='color:red'>"],"fields": {"*":{}}}
}//多字段高亮配置
GET /products/_search
{"query": {"term": {"name": {"value": "牛仔"}}},"highlight": {"pre_tags": ["<font color='red'>"],"post_tags": ["<font/>"],"require_field_match": "false","fields": {"name": {},"desc": {}}}
}

相关参数说明:

  • highlight 关键字: 可以让符合条件的文档中的关键词高亮。

  • highlight相关属性:

  • pre_tags 前缀标签

  • post_tags 后缀标签

  • tags_schema 设置为styled可以使用内置高亮样式

  • require_field_match 多字段高亮需要设置为false

ES向量检索

核心特性

  1. 向量数据类型

    • dense_vector:支持浮点数密集向量(如BERT、ResNet生成的向量)。

    • sparse_vector(实验性):支持稀疏向量(如TF-IDF高维稀疏表示)。

  2. 近似最近邻搜索(ANN)

    • 基于 HNSW(Hierarchical Navigable Small World) 算法,平衡精度与性能。

    • 支持 欧氏距离(l2)余弦相似度(cosine)点积(dot_product) 等相似度计算方式。

  3. 性能优化

    • 支持 量化(Quantization) 减少存储占用(如int8量化)。

    • 通过 段合并优化(Force Merge) 提升检索速度。

  4. 混合检索

    • 结合传统全文检索(BM25)与向量检索,实现多模态搜索。

搜索相关性

概念:在搜索引擎中描述一个文档与查询语句匹配程度的度量标准。

ElasticSearch 5之前的版本评分机制,或者打分模型是基于TF_IDF实现的。从ElasticSearch 5之后默认的打分机制改成了Okapi BM25。

TF_IDF算法:

  • TF是词频:检索词在文档中出现的频率越高,相关性也就越高

  • IDF是逆向文本频率:每个检索词在索引中出现的频率,频率越高,相关性就越低。

  • 字段长度归一值:检索词出现在一个内容短的title要比同样的词出现在一个内容长的content字段权重更大

BM 25算法:

和经典的TF_IDF的算法比较起来,当TF无限增加时,BM 25算分会趋近于一个数值

自定义评分策略

Index Boost(索引级权重)

作用:提升指定索引的文档相关性,适用于跨索引搜索。

GET /index1,index2/_search
{
  "indices_boost": [
    { "index1": 1.5 },  // index1的文档相关性提升50%
    { "index2": 0.8 }   // index2的文档相关性降低20%
  ],
  "query": { "match_all": {} }
}

Boosting Query(条件权重)

作用:提升或降低匹配特定条件的文档评分。

GET /products/_search
{
  "query": {
    "boosting": {
      "positive": { "match": { "title": "手机" } },  // 匹配的文档基础评分
      "negative": { "term": { "brand": "A" } },      // 匹配此条件的文档降权
      "negative_boost": 0.2  // 负向权重系数(原评分 × 0.2)
    }
  }
}

Function Score(自定义评分)

作用:通过函数动态计算文档评分,支持多种评分函数组合。

GET /articles/_search
{
  "query": {
    "function_score": {
      "query": { "match": { "content": "AI" } },  // 基础查询
      "functions": [
        {
          "filter": { "term": { "category": "tech" } }, // 过滤条件
          "weight": 2  // 符合条件文档评分 ×2
        },
        {
          "field_value_factor": {  // 字段值影响评分
            "field": "views",
            "modifier": "log1p",
            "factor": 0.1
          }
        }
      ],
      "boost_mode": "multiply"  // 评分计算方式(默认sum)
    }
  }
}

Rescore Query(二次评分)

作用:对初始查询结果进行二次评分,优化性能。

GET /logs/_search
{
  "query": { "match": { "message": "error" } },
  "rescore": {
    "window_size": 50,  // 对前50个结果二次评分
    "query": {
      "rescore_query": {
        "function_score": {
          "query": { "match_all": {} },
          "script_score": {
            "script": "_score * doc['severity'].value"  // 根据严重程度调整评分
          }
        }
      }
    }
  }
}

总结:

方法适用场景性能影响灵活性
Index Boost多索引搜索时优先级控制
Boosting Query简单条件降权(如排除低质量内容)
Function Score复杂评分逻辑(如热度、点击率加权)
Rescore Query分页后优化Top N结果(如精细化排序)可控

多字段查询优化

最佳字段搜索
  • 最佳字段(Best Fields):在多个字段中返回评分最高的

  • 多数字段(Most Fields):匹配多个字段,返回各个字段评分之和

  • 混合字段(Cross Fields):跨字段匹配,待查询内容在多个字段中都显示

最佳字段(Best Fields)

核心逻辑

  • 评分机制:从所有匹配字段中取 最高评分 作为文档最终评分。

  • 适用场景:关键词集中在单一字段(如商品标题优先于描述)。

  • 默认类型multi_match 的默认策略即为 best_fields

//语法示例
GET /products/_search
{
  "query": {
    "multi_match": {
      "query": "无线蓝牙耳机",
      "fields": ["title^3", "description"],  // title权重提升3倍
      "type": "best_fields",
      "tie_breaker": 0.3  // 其他字段评分的30%加入总分。平衡因子
    }
  }
}

多数字段(Most Fields)

核心逻辑

  • 评分机制:将 所有匹配字段的评分累加 作为文档最终评分。

  • 适用场景:关键词分散在多个字段(如标题和描述均含部分关键词)。

GET /articles/_search
{
  "query": {
    "multi_match": {
      "query": "机器学习框架",
      "fields": ["title", "content", "tags"],
      "type": "most_fields",  // 合并所有字段评分
      "minimum_should_match": "50%"  // 至少匹配50%词项
    }
  }
}

混合字段(Cross Fields)

核心逻辑

  • 评分机制:将多个字段视为 一个整体字段,要求所有词项在 任意字段组合 中匹配。

  • 适用场景:跨字段严格匹配(如地址:省+市+街道需完整匹配)。

GET /users/_search
{
  "query": {
    "multi_match": {
      "query": "张三 杭州 西湖区",
      "fields": ["province", "city", "district"],
      "type": "cross_fields",  // 所有词项需在任意字段中覆盖
      "operator": "AND"        // 必须匹配所有词项
    }
  }
}

维度Best FieldsMost FieldsCross Fields
评分重点单字段最佳匹配多字段累计贡献跨字段联合覆盖
适用场景核心字段优先级高(如标题)多字段互补(如标题+描述)严格跨字段匹配(如姓名+地址)
性能开销高(需跨字段验证)
典型参数tie_breakerminimum_should_matchoperator(需设为AND)

聚合

简介:聚合(Aggregation) 是数据处理中的一种核心操作,指将多行数据合并为单个统计值的过程。它常用于对数据集进行汇总分析。

  • 桶(Bucket)聚合:用来对文档做分组

    • TermAggregation:按照文档字段值进行分组

    • Date Histogram:按照日期阶梯进行分组。如一周为一组,一月为一组

  • 度量(Metric)聚合:用于计算一些值,比如:最大值、最小值、平均值等

    • Avg:求平均值

    • Max:求最大值

    • Min:求最小值

    • Stats:同时求max、min、avg、sum等

  • 管道(Pipeline)聚合:其它聚合的结果为基础做聚合,类比于嵌套聚合

    • Derivative(导数聚合):计算相邻分桶的差值。

    • Moving Average(移动平均):计算滑动窗口内的平均值。

    • Bucket Script(自定义脚本):用脚本处理多个聚合结果。

桶(Bucket)聚合

//按照文档字段进行分组检索
{
  "aggs": {
    "group_by_field": {
      "terms": { "field": "字段名" }
    }
  }
}

//按照日期进行分组检索
{
  "aggs": {
    "group_by_date": {
      "date_histogram": {
        "field": "日期字段",
        "calendar_interval": "1d"  // 间隔:1天、1M、1y 等
      }
    }
  }
}

度量(Metric)聚合

{
  "aggs": {
    "metric_name": { "avg": { "field": "数值字段" } }
  }
}

管道(Pipeline)聚合

// 先按日期分桶,再计算每月销售额的月环比增长率
GET /sales/_search
{
  "size": 0,
  "aggs": {
    "sales_per_month": {
      "date_histogram": { "field": "date", "calendar_interval": "1M" },
      "aggs": {
        "total_sales": { "sum": { "field": "amount" } },
        "monthly_growth": {
          "derivative": { "buckets_path": "total_sales" } // 导数聚合
        }
      }
    }
  }
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.pswp.cn/web/81462.shtml

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

相关文章

DDR4读写压力测试

1.1测试环境 1.1.1整体环境介绍 板卡&#xff1a; pcie-403板卡 主控芯片&#xff1a; Xilinx xcvu13p-fhgb2104-2 调试软件&#xff1a; Vivado 2018.3 代码环境&#xff1a; Vscode utf-8 测试工程&#xff1a; pcie403_user_top 1.1.2硬件介绍 UD PCIe-403…

在 Windows 上使用 WSL 安装 Ansible详细步骤

在 Windows 上使用 WSL&#xff08;Windows Subsystem for Linux&#xff09; 安装 Ansible 是目前最推荐的方式&#xff0c;因为 Ansible 本身是为 Linux 环境设计的&#xff0c;不支持原生 Windows 作为控制节点。 下面是一个 详细步骤指南 &#xff0c;帮助你在 Windows 上…

编写第一个ros程序

1.下载VScode 下载链接如下&#xff1a; Download Visual Studio Code - Mac, Linux, Windows 下载ARM64下的.deb文件 打开虚拟机&#xff0c;再rosnoetic下新建一个文件夹VSCODE&#xff0c;将windows下的文件导入该文件夹下如下图。 在该文件夹下右键选择在终端中打开 输入…

代码随想录算法训练营第60期第四十九天打卡

大家好&#xff0c;今天我们还是继续我们的动态规划章节&#xff0c;可能有的朋友已经开始厌倦了说为什么动态规划怎么这么多题目&#xff0c;大家可以想想我们前面其实刷过好几种类型的动态规划的经典题目比如说各式各样的背包问题当然包括0-1背包&#xff0c;完全背包&#x…

centos7.9离线升级内核到4.19.12详细教程

cenots7.9默认安装的内核版本是:3.10.0-1160.119.1.el7.x86_64,在安装nvidia显卡驱动的时候,提示内核版本过低,需要升级内核版本,升级完成之后,就可以顺利的安装上nvidia显卡驱动了,实测有效。 一、查看当前内核版本命令 uname -r二、下载离线内核的rpm包

Vue3 + TypeScript + el-input 实现人民币金额的输入和显示

输入人民币金额的参数要求&#xff1a; 输入要求&#xff1a; 通过键盘&#xff0c;只允许输入负号、小数点、数字、退格键、删除键、方向左键、方向右键、Home键、End键、Tab键&#xff1b;负号只能在开头&#xff1b;只保留第一个小数点&#xff1b;替换全角输入的小数点&a…

方正字库助力华为,赋能鸿蒙电脑打造全场景字体解决方案

2025年5月19日&#xff0c;搭载华为鸿蒙操作系统的鸿蒙电脑&#xff0c;面向用户推出集AI智能、互联流畅、安全保障和精致体验于一体的全新办公系统。作为鸿蒙生态核心字体服务商&#xff0c;方正字库为此次提供了全面的系统字体支持&#xff0c;涵盖中文、西文及符号三大类字库…

PHPStudy 一键式网站搭建工具的下载使用

目录 一、下载 PHPStudy二、安装步骤三、基本使用方法3.1 创建网站3.2 管理数据库3.3 软件管理3.4 自动启动3.5 配置管理 四、注意事项和进阶使用4.1 注意事项4.2 进阶使用 背景&#xff1a; 我们在学习和工作中&#xff0c;经常会遇到各种需要自己搭建环境的场景&#xff0c;这…

java中的线程安全的集合

1.ConcurrentHashMap。 key,value结构。 jdk1.7通过分段锁保证不同段同时操作是线程安全的&#xff0c;但并发不足&#xff0c;jdk1.8通过node节点锁和CAS保证并发安全。不同node节点可以并发读写。通过它的computer,computerIfAbsent,等可以保证原子更新value。ifAbsent表示有…

MySQL问题:MySQL中使用索引一定有效吗?如何排查索引效果

不一定有效&#xff0c;当查询条件中不包含索引列或查询条件复杂且不匹配索引顺序 对于一些小表&#xff0c;MySQL可能选择全表扫描而非使用索引&#xff0c;因为全表扫描的开销可能更小 最终是否用上索引是根据MySQL成本计算决定的&#xff0c;评估CPU和I/O成本 排查索引效…

使用vscode MSVC CMake进行C++开发和Debug

使用vscode MSVC CMake进行C开发和Debug 前言软件安装安装插件构建debuug方案一debug方案二其他 前言 一般情况下我都是使用visual studio来进行c开发的&#xff0c;但是由于python用的是vscode&#xff0c;所以二者如果统一的话能稍微提高一点效率。 软件安装 需要安装的软…

【后端高阶面经:消息队列篇】29、Kafka高性能探秘:零拷贝、顺序写与分区并发实战

一、 顺序写入:磁盘性能的极致挖掘 Kafka的高性能本质上源于对磁盘顺序访问的深度优化。 传统随机写入的磁盘操作需要磁头频繁寻道,机械硬盘的随机写性能通常仅为100IOPS左右,而Kafka通过追加日志(Append-Only Log)模式,将所有消息按顺序写入分区文件,使磁盘操作转化为…

AI预测3D新模型百十个定位预测+胆码预测+去和尾2025年5月27日第90弹

从今天开始&#xff0c;咱们还是暂时基于旧的模型进行预测&#xff0c;好了&#xff0c;废话不多说&#xff0c;按照老办法&#xff0c;重点8-9码定位&#xff0c;配合三胆下1或下2&#xff0c;杀1-2个和尾&#xff0c;再杀6-8个和值&#xff0c;可以做到100-300注左右。 (1)定…

Git 初次推送远程仓库

Git 初次推送远程仓库&#xff08;完整实战版&#xff09; —— 涵盖重命名分支、强制合并、冲突解决等高频场景 &#x1f525; 核心流程图 初始化 → 关联远程 → 提交代码 → 处理分支冲突 → 成功推送 1. 基础操作&#xff08;全新仓库&#xff09; # 初始化 cd /your/pr…

Pluto实验报告——基于FM的音频信号传输并解调恢复

目录 一、实验目的 ................................ ................................ ................................ .................. 3 二、实验内容 ................................ ................................ ................................ ......…

输出数据OutputFormat案例

输出数据OutputFormat 案例&#xff1a; www.atguigu.com www.atguigu.com www.atguigu.com www.hao123.com www.shouhu.com www.baidu.com www.atguigu.com www.qq.com www.gaga.com www.qinghua.com www.sogou.com www.baidu.com www.alibaba.com …

STM32与ESP32的区别

STM32与ESP32都是当前电子行业中广泛使用的微控制器芯片&#xff0c;但二者在架构、功能、应用领域以及开发生态上均存在显著差异。需要高度实时响应和低功耗的系统通常适合STM32&#xff0c;而需要网络连接和便捷无线通讯的物联网应用通常更适合ESP32。 一、架构与性能 STM32…

YOLOv11改进 | Neck篇 | 双向特征金字塔网络BiFPN助力YOLOv11有效涨点

YOLOv11改进 | Neck篇 | 双向特征金字塔网络BiFPN助力YOLOv11有效涨点 引言 目标检测领域的最新进展表明,特征金字塔网络(FPN)的设计对模型性能具有决定性影响。本文详细介绍如何将**双向特征金字塔网络(BiFPN)**集成到YOLOv11的Neck部分,通过改进的多尺度特征融合机制…

Python后端框架新星Robyn:性能与开发体验的双重革命

引言:Python后端框架的进化之路 在Web开发领域,Python生态长期被Flask、Django等经典框架主导。随着异步编程需求的增长和高并发场景的普及,开发者对框架性能提出了更高要求。2023年,一款名为Robyn的新型Web框架横空出世,以其独特的Rust底层架构和优雅的Python API设计,…

ADS学习笔记(三) 瞬态仿真

参考书籍:见资源绑定,书籍3.4 瞬态仿真,书籍链接: https://pan.baidu.com/s/1pjw8p7r3-1x8qcC1-hljFQ?pwd4v79 提取码: 4v79 本文为对实验内容的补充 瞬态仿真放大倍数与交流仿真不一致 为什么对同一个BJT电路进行交流信号仿真和进行瞬态仿真,得出交流信号仿真的放大倍数是3.…