当前位置: 首页 > news >正文

Elasticsearch 官网阅读之 Term-level Queries

Term-level Queries

参考:https://www.elastic.co/docs/reference/query-languages/query-dsl/query-dsl-exists-query

一、Term Query

Term Query 是 term 精准查询。需要注意的是,在进行 Term Query 的时候,要避免 text 类型的字段,因为 Elasticsearch 构建倒排索引时会改变 text 字段的值,即它会进行分词,这会导致我们在精准匹配 text 字段值时会比较困难。

如果想要查询 text 类型的值,需要使用 match query

1.1、term 查询的相关参数介绍

{"query" : {"term": {"field": {"value": "xxx","boost": 1.0}}}
}
  • field: 即我们想要查询的字段
  • value: 即我们想要查询的单词,只有在 term 完全匹配字段值(包含大小写和空格)时,才会返回文档。ps: 这里我实验了一下,准确来说应该是精准匹配该字段在分词的最小 term 。
  • boost: 浮点类型,它用来对该查询条件进行提权或降权,在多个查询条件下,该字段对相关性算分的影响
  • case_insensitive: 这个字段在 7.10.0 版本添加,控制该查询字段是否考虑大小写,true 的情况忽略大小写,false 的情况考虑大小写

1.2、RESTful API 示例

PUT my_index_00001
{"mappings": {"properties": {"full-text":{"type": "text"}}}
}PUT my_index_00001/_doc/1
{"full-text":"Quick Brown Foxes!"
}// 使用 term 查询,会返回无结果,因为 term 查询不会对文本进行分词,而 text 类型的内容会被分词
POST my_index_00001/_search
{"query": {"term": {"full-text": {"value": "Quick", // Quick Brown Foxes! 不会返回数据"boost": 1.0,"case_insensitive": true // 大小写敏感控制, true 忽略大小写、false 考虑大小写}}}
}

二、Terms Query

在一次查询中指定多个 Term 时,只要文档匹配其中至少一个 Term,即可被检索出来。

Terms Query 是在 Term Query 的基础上,支持多值查询。

2.1、terms 查询的相关参数介绍

{"query": {"terms": {"field": [value1,value2,]"boost": 1.0}}
}
  • field: 即我们想要查询的字段
  • value: 这里是一个数组
    • 默认情况,es 限制这个数组的大小是 65536,我们也可以通过使用 setting 中的 index.max_terms_count 来改变这个限制。
  • boost: 浮点类型,它用来对该查询条件进行提权或降权,在多个查询条件下,该字段对相关性算分的影响

2.2、Terms Lookup 功能

我们也可以使用索引中已经存在的文档的字段作为查询的 Terms,来检索其他符合条件的文档,这个功能称为 terms lookup。这个功能在查询大量 Terms 时很有帮助。

2.2.1、相关参数介绍
  • index: 指定索引
  • id: 指定文档 id
  • path: 指定文档字段,将该字段的值作为检索的 terms value

2.3、RESTful API 示例

PUT my_index_00002
{"mappings": {"properties": {"color": {"type": "keyword"}}}
}PUT my_index_00002/_doc/1
{"color": ["blue","green","black"]
}PUT my_index_00002/_doc/2
{"color": ["blue"]
}// terms 示例
GET my_index_00002/_search
{"query": {"terms": {"color": ["blue","white"]}}
}// terms lookup 示例
GET my_index_00002/_search?pretty
{"query": {"terms": {"color": {"index": "my_index_00002","id": "2","path": "color"}}}
}

三、、Terms Set Query

Terms Set Query 是一种用于匹配文档字段中多个值的至少一个或多个的高级查询方式,适用于文档中的字段是数组或集合的情况。它比普通的 terms 查询更灵活,可以基于多个值的交集进行过滤。

我们在查询过程中可以:

  • 提供一个候选值集合
  • Elasticsearch 会检查文档中指定字段的值,与这个集合的交集是否满足某种最小匹配条件
  • 这个”最小匹配条件“可以是一个固定数字,或者从文档的另一个字段中动态获取

3.1、RESTful API 示例

PUT job-candidates
{"mappings": {"properties": {"name":{"type": "keyword"},"programming_languages": {"type": "keyword"},"required_matches": {"type": "long"}}}
}// refresh 表示文档创建后可以被立即检索
PUT /job-candidates/_doc/1?refresh
{"name": "Jane Smith","programming_languages": [ "c++", "java" ],"required_matches": 2
}PUT /job-candidates/_doc/2?refresh
{"name": "Jason Response","programming_languages": [ "java", "php" ],"required_matches": 2
}GET /job-candidates/_search
{"query": {"terms_set": {"programming_languages": {"terms": [ "c++", "java", "php" ],"minimum_should_match_field": "required_matches" // 根据文档的字段动态决定最小匹配数}}}
}GET /job-candidates/_search
{"query": {"terms_set": {"programming_languages": {"terms": [ "c++", "java", "php" ],"minimum_should_match": 2 // 固定值}}}
}GET /job-candidates/_search
{"query": {"terms_set": {"programming_languages": {"terms": ["c++","java","php"],"minimum_should_match_script": {// params.num_terms 就是传入的 terms 的数量"source": "Math.min(params.num_terms, doc['required_matches'].value)" // 脚本动态指定}}}}
}

四、Exists Query

Exists Query(存在性查询),用于检索字段存在的文档。通俗地说:它就是再问"这个字段在文档里有没有值?"

文档的某个字段可能因为多种原因没有被索引,原因可能如下:

  • 该字段的可能是 null 或者 [],因为 Elasticsearch 不会为 null 或空数组的字段建立索引。也就是说,虽然字段在 _source 中存在,但在索引中根本没有它的信息,exists 查询时就不会命中
  • 在 mapping 设置时,针对该字段做了如下操作:
    • index: false【关闭倒排索引】 且 doc_values: false【关闭列式存储】,这种字段也不会被索引
    • ignore_above: xxx(number) ,该字段是 keyword 类型字段中常见的参数,用来忽略过长的字符串,如果超出限制,也不会被索引
    • ignore_malformed: xxx(bool),字段的值格式错误,但映射中设置了 ignore_malformed,也就是当我们传入了格式错误的字段值(比如给整数字段传了字符串),如果该设置为true,Elasticsearch 会忽略该字段的索引,而不是抛出错误。

4.1、RESTful API 示例

PUT my_index_00003
{"mappings": {"properties": {"username": {"type": "keyword"},"age": {"type": "long","index": false,"doc_values": false}}}
}PUT my_index_00003/_doc/1
{"username": "markuszhang","age": 26
}
PUT my_index_00003/_doc/2
{"username": "luna","age": 25
}// 查不到值,因为 age 字段关闭了 index 和 doc_values
GET my_index_00003/_search
{"query": {"term": {"age": {"value": 25}}}
}GET my_index_00003/_search
{"query": {"bool": {"must_not": [{"exists": {"field": "age"}}]}}
}GET my_index_00003/_search
{"query": {"exists": {"field": "username"}}
}

五、Fuzzy Query

Fuzzy Query 是用来处理拼写错误或不精确匹配的查询类型。它基于 Levenshtein 编辑距离,允许在查询字符串和被匹配词之间存在一定程度的差异(插入、删除、替换、转置字符)。例如:查询词是 “roam”,它可以模糊匹配 “foam”,“roams”,“room” 等。

5.1、相关参数介绍

{"query": {"fuzzy": {"field": {"value": "xxx","fuzziness": "AUTO","max_expansions": 50,"prefix_length": 0,"transpositions": true,"rewrite": "constant_score"}}}
}
  • field: 需要查询的字段
  • value: 需要查询的 term
  • fuzziness: 允许匹配的最大编辑距离
  • max_expansions: 最大扩展词数量的限制(根据 fuzziness 生成若干个变体词去倒排索引进行查询,这个参数就是用来限制变体词的数量,默认50)
  • prefix_length: 带前缀长度限制的模糊匹配,设置为0 表示不要求前缀必须精确匹配
  • transpositions: 用来控制是否允许两个相邻字符的位置调换,也算作一次编辑操作
  • rewrite: 当使用 fuzzy 查询时,它会生成多个可能匹配的 term,然后使用布尔查询来组合这些 term 进行匹配,该参数决定了这个布尔查询的类型和执行方式,会影响查询性能、精度、匹配方式
    • 可选的模式如下:
      • constant_score: 默认方式,把所有的匹配的 term 作为 filter,不计算得分
      • scoring_boolean: 用 should 条件组合匹配 term,计算得分
      • constant_score_boolean: 和 scoring_boolean 类似,但不计算得分,性能更好
      • top_terms_N: 只使得得分前 N 个词项参与查询
      • top_terms_boost_N: 和 top_terms_N 类似,但使用原始分值作为 boost
      • top_terms_blended_freqs_N: 综合考虑词频,得分更精细(Lucene 支持)

5.2、RESTful API 示例

PUT my_index_00004
{"mappings": {"properties": {"username": {"type": "text"}}}
}PUT my_index_00004/_doc/1
{"username": "markuszhang"
}GET my_index_00004/_search
{"query": {"fuzzy": {"username": {"value": "makuszhang","fuzziness": 1,"prefix_length": 1,"rewrite": "constant_score"}}}
}

六、IDs Query

基于文档 id 进行查询

GET my_index_00003/_search
{"query": {"ids": {"values": [1,2]}}
}

七、Prefix Query

前缀查询,即指定前缀,检索符合条件的文档

7.1、相关参数介绍

{"query": {"prefix": {"field": {"value": "prefix"}}}
}
  • field: 需要检索的字段
  • value: 需要检索的起始字符
  • rewrite: 同 Fuzzy Query 中的参数
  • case_insensitive: 在 7.10.0 版本添加,是否考虑大小写

7.2、RESTful API 示例


GET my_index_00004/_search
{"query": {"prefix": {"username": {"value": "Markus","case_insensitive": true}}}
}

八、Range Query

范围查询,指定 terms 的范围,返回符合条件的文档

8.1、相关参数介绍

{"query": {"range": {"age": {"gte": 10,"lte": 20,"boost": 2.0}}}
}
  • gt: 大于
  • gte: 大于等于
  • lt: 小于
  • lte: 小于等于
  • format: 将value值转换为某种格式,es 默认使用的是 日期格式
  • relation: 如果字段是一个 range 类型,则这块会有几个查询模式
    • INTERSECTS(默认),即有交集就算符合条件
    • CONTAINS,文档范围完全包含查询范围
    • WITHIN, 文档范围完全被查询范围包含
  • time_zone: 时区
  • boost: 对此查询条件做加降权

8.2、RESTful API 示例

PUT my_index_00005
{"mappings": {"properties": {"username": {"type": "keyword"},"age": {"type": "long"}}}
}PUT my_index_00005/_doc/1
{"username": "markuszhang","age": 26
}
PUT my_index_00005/_doc/2
{"username": "luna","age": 25
}GET my_index_00005/_search
{"query": {"range": {"age": {"gte": 26}}}
}

九、Regexp Query

正则表达式匹配查询,返回符合正则表达式的文档

9.1、相关参数介绍

{"query": {"regexp": {"field": {"value": "k.*y","flags": "ALL","case_insensitive": true,"max_determinized_states": 10000,"rewrite": "constant_score_blended"}}}
}
  • field: 需要检索的字段
  • value: 正则表达式,Elasticsearch 默认限制 1000 characters,我们可以通过 index.max_regex_length setting 设置
    • 正则查询的性能受正则表达式影响,为提升性能,尽量避免直接使用通配符,例如 ., .?+,没有前缀或者后缀。
  • flags: 可以启用(或组合启用)不同的 正则表达式特性
  • case_insensitive: 是否考虑大小写
  • max_determinized_states: 自动机状态数,默认10000,避免出现性能问题
  • rewrite: 同 Fuzzy Query 中的参数

9.2、RESTful API 示例

GET my_index_00005/_search
{"query": {"regexp": {"username": "markus.*"}}
}

十、Wildcard Query

通配符查询,与 regexp query相比,wildcard 查询语法简单、性能更高,适用于常见的通配搜索。

10.1、相关参数介绍


{"query": {"wildcard": {"field": {"value": "ki*y","boost": 1.0,"rewrite": "constant_score_blended"}}}
}
  • field: 要查询的字段
  • boost: 相关性算法加降权
  • case_insensitive: 大小写敏感
  • rewrite: 同 Fuzzy Query 中的参数
  • value: 带通配符的 terms
    • ? 表示匹配任意单个字符串
    • * 表示匹配0或任意个字符,包含空字符
    • 需要注意,避免使用 * or ? 作为 term 的起始字符,这会增加查询匹配 term 的次数和降低查询性能
  • wildcard: 和 value 对应,是 value 参数的别名,如果 value 和 wildcard 同时被指定,会选择 request body 中最后一个参数所指定的 term 进行查询

使用 * 的通配符查询可能会消耗大量资源,特别是前缀是 * 的查询。为了提高查询性能,应尽量减少使用这种方式,并考虑其他替代方案,比如使用 n-gram 分词器。虽然 n-gram 能让搜索更高效,但会导致索引变大。为了更好的性能和准确性,建议将 wildcard 查询和其他查询(如 match 或 bool)组合使用,先缩小候选结果,再进行通配匹配

10.2、RESTful API 示例

GET my_index_00005/_search
{"query": {"wildcard": {"username": "markus*hang"}}
}

相关文章:

Elasticsearch 官网阅读之 Term-level Queries

Term-level Queries 参考:https://www.elastic.co/docs/reference/query-languages/query-dsl/query-dsl-exists-query 一、Term Query Term Query 是 term 精准查询。需要注意的是,在进行 Term Query 的时候,要避免 text 类型的字段&#x…...

医疗大模型技术演进与行业应用全景

摘要 本文系统梳理医疗大模型技术架构的三大演进阶段,深度解析Transformer架构优化、多模态融合、模型压缩等核心技术突破。结合Google Med-PaLM、启真医疗大模型等16个典型行业案例,揭示医疗大模型在诊断辅助、药物研发、医院管理等九大场景的应用成效。基于权威评测数据,…...

【软考 McCabe度量法】

McCabe度量法(McCabe’s Cyclomatic Complexity)是由Thomas McCabe提出的一种用于衡量程序模块环路复杂性的软件度量方法。它通过分析代码的控制流结构来评估程序的复杂度,帮助开发者识别难以维护或测试风险较高的代码区域。 一、McCabe度量法…...

LabVIEW光谱信号仿真与数据处理

在光谱分析领域,LabVIEW 凭借其图形化编程、丰富函数库及强大数据处理能力,成为高效工具。本案例将介绍如何利用 LabVIEW 仿真光谱信号,并对实际采集的光谱数据进行处理,涵盖信号生成、数据采集、滤波、分析及显示等环节。 ​ 一…...

从零开始认识 Node.js:异步非阻塞的魅力

Node.js 是一个基于 Chrome V8 引擎 的 JavaScript 运行时环境,用于在服务器端运行 JavaScript 代码。它的设计目标是让开发者能够用 JavaScript 构建高性能、可扩展的网络应用。以下是关于 Node.js 的详细介绍: 1. 核心特点 事件驱动与非阻塞 I/O&…...

ECMAScript 2018(ES2018):异步编程与正则表达式的深度进化

1.版本背景与发布 发布时间:2018年6月,由ECMA International正式发布,标准编号为ECMA-262 9th Edition。历史意义:作为ES6之后的第三次年度更新,ES2018聚焦于异步编程、正则表达式和对象操作的标准化,推动…...

【gitee 初学者矿建仓库】

简易的命令行入门教程: Git 全局设置: git config --global user.name "你的名字"触摸 git config --global user.email "你的邮箱"创建 git 仓库: mkdir codestore cd codestore git init -b "main" touch README.md # 选择运行 git add REA…...

Java 类和对象

文章目录 类和对象实例化对象this构造和初始化封装访问修饰限定符包自定义包 static代码块 类和对象 Java当中一切皆对象对象是什么呢? 比如是一个人,手机等怎么描述对象呢? 可以用类描述对象,可以理解类为一个模版,用…...

湖北理元理律师事务所:科学债务管理模型构建实录

债务问题本质是资源错配问题。湖北理元理律师事务所基于400案例的司法大数据,提炼出一套“三阶九步”债务管理模型,本文从技术视角解析其运作逻辑与实操价值。 模型架构:从诊断到执行的全周期管理 阶段一:债务体检(1…...

JavaScript vs Python 用于 Web Scraping(2025):终极对比指南

1. 引言 在不断发展的 Web Scraping 领域,选择合适的编程语言对于项目的成功至关重要。虽然 JavaScript 和 Python 在 2025 年仍然是 Web Scraping 领域的热门选择,但它们各自具备不同的优势和挑战。 本指南将深入分析 JavaScript 和 Python 的核心特性…...

数据结构day3

一、gdb调试 gcc -g main.c linklist.c // 对两个.c文件进行编译,生成 a.out 文件 gdb a.out //调试可执行文件 a.out b linklist.c:36 // 在该.c文件第 36 行设置断点 r // 运行程序,但会在断点前停…...

VSCode launch.json 配置参数详解

使用 launch.json 配置调试环境时,会涉及到多个参数,用于定义调试器的行为和目标执行环境。以下是一些常用的配置参数: 1、"type" :指定调试器的类型,例如 "node" 表示 Node.js 调试器&#xff0…...

[已解决] LaTeX “Unicode character“ 报错 (中文字符处理)

问题: 写 LaTeX 文档,特别是包含中文时,经常遇到类似下图的 “Unicode character XXXXXX” 报错 (X) Unicode character 本 (U672C) LaTeX [行 xx, 列 x] (X) Unicode character 报 (U62A5) LaTeX [行 xx, 列 x] ...这通常意味着我们的 LaTe…...

c++成员函数返回类对象引用和直接返回类对象的区别

c成员函数返回类对象引用和直接返回类对象的区别 成员函数直接返回类对象&#xff08;返回临时对象&#xff0c;对象拷贝&#xff09; #include <iostream> class MyInt { public:int value;//构造函数explicit MyInt(int v0) : value(v){}//加法操作,返回对象副本&…...

python项目参考文献

技术范围&#xff1a;SpringBoot、Vue、SSM、HLMT、Jsp、PHP、Nodejs、Python、爬虫、数据可视化、小程序、安卓app、大数据、物联网、机器学习等设计与开发。 主要内容&#xff1a;免费功能设计、开题报告、任务书、中期检查PPT、系统功能实现、代码编写、论文编写和辅导、论文…...

Go语言实现链式调用

在 Go 语言中实现链式调用&#xff08;Method Chaining&#xff09;&#xff0c;可以通过让每个方法返回对象本身&#xff08;或对象的指针&#xff09;来实现。这样每次方法调用后可以继续调用其他方法。 示例&#xff1a;实现字符串的链式操作 假设你想对一个字符串连续执行…...

深入解析SpringMVC:从入门到精通

上文了解到SpingBoot的相关知识&#xff0c;此文开启Sping家族下的新篇章 1. 什么是SpringWebMVC&#xff1f; 官方对于SpringMVC的描述是这样的&#xff1a; 什么是Servlet呢? Servlet 是⼀种实现动态页面的技术.准确来讲Servlet是⼀套JavaWeb开发的规范&#xff0c;或者说…...

Java-Collections类高效应用的全面指南

Java-Collections类高效应用的全面指南 前言一、Collections 类概述二、Collections 类的基础方法2.1 排序操作2.1.1 sort方法2.1.2 reverse方法2.1.3 shuffle方法 2.2 查找与替换操作2.2.1 binarySearch方法2.2.2 max和min方法2.2.3 replaceAll方法 三、Collections 类的高级应…...

微软家各种copilot的AI产品:Github copilot、Microsoft copilot

背景 大家可能听到很多copilot&#xff0c;比如 Github Copilot&#xff0c;Microsoft Copilot、Microsoft 365 Copilot&#xff0c;有什么区别 Github Copilot&#xff1a;有网页版、有插件&#xff08;idea、vscode等的插件&#xff09;&#xff0c;都是面向于程序员的。Mi…...

JAVA EE_HTTP

为什么意气风发的少年&#xff0c;总是听不进去别人的劝解。 ​​​​​​​ ​​​​​​​ ----------陳長生. ❀主页&#xff1a;陳長生.-CSDN博客❀ &#x1f4d5;上一篇&#xff1a;JAVA EE_网络原理_数据链路层-CSDN博客 1.HTTP 1.1.HTTP是什么 H…...

SEO 优化实战:ZKmall模板商城的 B2C商城的 URL 重构与结构化数据

在搜索引擎算法日益复杂的今天&#xff0c;B2C商城想要在海量信息中脱颖而出&#xff0c;仅靠优质商品和营销活动远远不够。ZKmall模板商城以实战为导向&#xff0c;通过URL 重构与结构化数据优化两大核心策略&#xff0c;帮助 B2C 商城实现从底层架构到搜索展示的全面升级&…...

使用HtmlAgilityPack采集墨迹天气中的天气数据

需要解析对应的HTML源码&#xff1a; <div class"left"><div class"wea_alert clearfix"><ul><li><a href "https://tianqi.moji.com/aqi/china/jiangxi/hukou-county" >< span class"level level_2&qu…...

广和通L610模块通过AT指令访问服务器方案:嵌赛使用

实现步骤及关键点&#xff1a; 网络连接配置 ATCGDCONT1,"IP","APN名称" // 设置APN ATCGACT1,1 // 激活PDP上下文 ATCGATT1 // 附着GPRS网络 HTTP协议支持验证 L610支持HTTP客户端功能&#xff0c;关键指…...

nodejs快速入门到精通1

参考 nodejs快速入门到精通 菜鸟教程-nodejs nodejs官方文档 原因 视频免费 资料收费 笔记还是自己写吧 安装 nodejs官网 windows下&#xff1a; #查看nodejs版本 node -v #查看npm版本 npm -v #设置npm为淘宝镜像源 npm config set registry https://registry.npmmirror.…...

Linux下软件安装

一、软件安装方式 在 Linux 系统中&#xff0c;常见的软件安装方式有以下几种&#xff1a; 包管理器安装&#xff08;如 yum、apt&#xff09; 这是最便捷的安装方式&#xff0c;通过系统自带的包管理器从官方软件源下载并安装软件。 # CentOS/RHEL系统使用yum安装 yum insta…...

React Fiber 架构深度解析:时间切片与性能优化的核心引擎

文章目录 前言一、Fiber 架构的诞生背景二、Fiber 架构的核心概念1. Fiber 节点2. Fiber 节点的结构3. 双缓存机制4. 增量渲染与优先级调度 三、时间切片技术详解1. 时间切片的定义与原理2. 时间切片与 JavaScript 事件循环3. 时间切片的实现方式4. 时间切片的优势 四、Fiber 架…...

mcp学习笔记

MCP&#xff08;Model Context Protocol&#xff09;是一种由Anthropic推出的开放协议&#xff0c;旨在统一大型语言模型&#xff08;LLM&#xff09;与外部数据源/工具之间的交互。其核心组件包括 ​MCP Client、MCP Server​ 和 ​Function Calling​ 机制&#xff0c;三者协…...

鸿蒙北向源码开发: 检查应用接口dts文件api规范性

开源鸿蒙5.0.2对应的api版本是14 5.0社区仓有工具检查接口规范性报告工具: interface/sdk-js/build-tools/api_check_plugin api_check_plugin是什么? 在解释api_check_plugin是什么之前得先知道 应用调用的api接口都是文件名后缀为.d.ts的文件,这些文件内部声明了arkts的a…...

Redis设计与实现——分布式Redis

Redis Sentinel&#xff08;哨兵&#xff09; Sentinel 的工作机制 故障检测&#xff08;Failure Detection&#xff09; 主观下线&#xff08;Subjective Down&#xff09;&#xff1a;单个 Sentinel 实例检测到主节点在30 秒内无响应&#xff0c;标记其为 SDOWN。 客观下线…...

【Redis】Hash 哈希

文章目录 常用命令hsethgethmgethexistshkeyshvalshgetallhdelhlenhsetnxhincrbyhincrbyfloat 内部编码应用场景 Redis 存储键值对&#xff0c;也就是 key - value&#xff0c;不过同时也允许 value 也为键值对&#xff0c;但此时为了避免冲突&#xff0c;为 field - value PS…...

【matlab技巧】通过手绘的方法设计二维运动轨迹,附MATLAB程序

代码提供了一种直观的方式来使用鼠标在图形窗口中绘制线条&#xff0c;同时能够记录并显示用户绘制的轨迹坐标。用户通过左键点击绘制点&#xff0c;右键点击结束绘制&#xff0c;适合用于简单的图形交互和数据可视化。 文章目录 代码作用运行MATLAB源代码代码详解 代码作用 这…...

游戏引擎学习第290天:完成分离渲染

game_sim_region.cpp&#xff1a;在BeginSim中移除EntityOverlapsRectangle调用 现在我们接近一个关键点&#xff0c;虽然还没完全结束&#xff0c;但我们已经把所有东西迁移到了一个新概念上——即那些临时创建的控制器结构&#xff0c;称为“脑”&#xff08;brains&#xf…...

uniapp-商城-61-后台 新增商品(添加商品到数据库)

完成商品的布局&#xff0c;完成商品的属性添加&#xff0c;最后的目的还是要完成数据添加&#xff0c;将我们前台的数据添加后台的数据库。 1、界面 2、点击提交完成商品添加 点击下方的提交按钮&#xff0c;将数据添加到数据库。 onSubmit 使用该函数---见3 <view cla…...

深入浅出IIC协议 - 从总线原理到FPGA实战开发 -- 第一篇:I2C总线协议深度解剖

第一篇&#xff1a;I2C总线协议深度解剖 副标题 : 两根线如何征服千亿设备&#xff1f;详解硬件工程师必须掌握的通信奥义 1. 为什么I2C仍是嵌入式经典&#xff1f; 1.1 总线拓扑的哲学 拓扑对比图 SPI需4线N片选 vs I2C仅2线级联 UART点对点 vs I2C多主从架构 成本控制实…...

QT之LayOut布局

文章目录 QFormLayoutQGridLayoutQFormLayout、QGridLayout、QHBoxLayout、QVBoxLayout综合案例用QFormLayout 代替 界面左边部分的QGridLayout QFormLayout #include "widget.h"#include <QFormLayout> #include <QLineEdit>Widget::Widget(QWidget *p…...

ubuntu 24.04安装ros1 noetic

为了后续能够找到安装方法&#xff0c;记录一下&#xff1a; 参考如下链接安装&#xff1a; https://www.reddit.com/r/ROS/comments/158icpy/compiling_ros1_noetic_from_source_on_ubuntu_2204/ 安装步骤如下&#xff1a; 1.获取apt 包 sudo apt-get install python3-ros…...

动态规划-64.最小路径和-力扣(LetCode)

一、题目解析 从左上角到右下角使得数字总和最小且只能向下或向右移动 二、算法原理 1.状态表示 我们需要求到达[i,j]位置时数字总和的最小值&#xff0c;所以dp[i][j]表示&#xff1a;到达[i,j]位置时&#xff0c;路径数字总和的最小值。 2.状态转移方程 到达[i,j]之前要先…...

Python爬虫(29)Python爬虫高阶:动态页面处理与云原生部署全链路实践(Selenium、Scrapy、K8s)

目录 引言&#xff1a;动态爬虫的技术挑战与云原生机遇一、动态页面处理&#xff1a;Selenium与Scrapy的协同作战1.1 Selenium的核心价值与局限1.2 Scrapy-Selenium中间件开发1.3 动态分页处理实战&#xff1a;京东商品爬虫 二、云原生部署&#xff1a;Kubernetes架构设计与优化…...

FauxGen:一款由 CodeBuddy 主动构建的假数据生成器

我正在参加CodeBuddy「首席试玩官」内容创作大赛&#xff0c;本文所使用的 CodeBuddy 免费下载链接&#xff1a;腾讯云代码助手 CodeBuddy - AI 时代的智能编程伙伴 在前端开发中&#xff0c;经常需要一些「假数据」来模拟真实接口&#xff0c;便于开发阶段的界面构建和功能测试…...

chrome 浏览器插件 myTools, 日常小工具。

1. 起因&#xff0c; 目的: 比如&#xff0c;chatgpt, google&#xff0c; 打开网页&#xff0c;就能直接输入文字&#xff0c;然后 grok 就不行&#xff0c;必须用鼠标点一下&#xff0c;才能输入文字。 对我而言&#xff0c;是个痛点&#xff01;写个插件&#xff0c;自动点…...

从代码学习深度学习 - 词嵌入(word2vec)PyTorch版

文章目录 前言1. 为什么需要词嵌入?2. 早期尝试:独热向量 (One-Hot Vectors)独热向量的局限性3. 自监督的 word2vec4. 跳元模型 (Skip-Gram Model)4.1. 训练5. 连续词袋 (CBOW) 模型5.1. 训练总结前言 自然语言处理(NLP)是人工智能领域中一个充满活力和挑战的分支。要让计…...

手写tomcat:基本功能实现(4)

逻辑架构 HTTP 请求与 Socket&#xff1a; 左侧的 “HTTP 请求” 箭头指向 “socket”&#xff0c;表示客户端发送的 HTTP 请求通过 socket 传输到服务器。Socket 负责接收请求&#xff0c;并提取出其中的 请求路径&#xff08;如 /first&#xff09;和 请求方法&#xff08;如…...

String的一些固定程序函数

append reverse length toString...

SECERN AI提出3D生成方法SVAD!单张图像合成超逼真3D Avatar!

SECERN AI提出的3D生成方法SVAD通过视频扩散生成合成训练数据&#xff0c;利用身份保留和图像恢复模块对其进行增强&#xff0c;并利用这些经过优化的数据来训练3DGS虚拟形象。SVAD在新的姿态和视角下保持身份一致性和精细细节方面优于现有最先进&#xff08;SOTA&#xff09;的…...

windows触摸板快捷指南

以下是结构化整理后的触控手势说明&#xff0c;采用清晰的层级划分和标准化表述&#xff1a; **触控手势操作规范****1. 单指操作****2. 双指操作****3. 三指操作****4. 四指操作** **优化说明&#xff1a;** 触控手势操作规范 1. 单指操作 手势功能描述等效操作单击滑动选择…...

Mipsel固件Fuzzing小记

Mipsel固件Fuzzing小记 0x01 准备 1.1 安装必要工具链 首先需要安装 MIPS 交叉编译工具链和相关依赖&#xff1a; sudo apt-get install -y gcc-mipsel-linux-gnu g-mipsel-linux-gnu binwalk qemu-user-static afl这些工具分别用于&#xff1a;交叉编译、固件解包、二进制…...

边缘计算:物联网的“加速器”与“守护者”

引言 随着物联网&#xff08;IoT&#xff09;的快速发展&#xff0c;越来越多的设备接入网络&#xff0c;产生了海量的数据。传统的云计算架构面临着延迟高、带宽不足、数据安全等问题。边缘计算作为一种新兴技术&#xff0c;正在成为解决这些问题的关键手段。本文将探讨边缘计…...

简单网络交换、路由-华三RRPP以太环网

1、RRPP简单介绍 RRPP用来组建环网的链路层协议&#xff0c;工作在二层&#xff0c;比STP收敛更快&#xff0c;同时与STP、Smart-link互斥。很多企业很少应用环网组网&#xff0c;但是小编所在工业生产制造企业在特定工艺的区域对环网应用颇多&#xff0c;RRPP小编还是推荐网工…...

Kotlin变量与数据类型详解

Kotlin 变量与基本数据类型详解 一、变量声明 1. val vs var val&#xff1a;不可变变量&#xff08;只读&#xff09;&#xff0c;类似 Java 的 finalvar&#xff1a;可变变量 val name "Kotlin" // 类型推断为 String var age 25 // 类型推断为 I…...

【Redis】List 列表

文章目录 初识列表常用命令lpushlpushxlrangerpushrpushxlpop & rpoplindexlinsertllen阻塞操作 —— blpop & brpop 内部编码应用场景 初识列表 列表类型&#xff0c;用于存储多个字符串。在操作和实现上&#xff0c;类似 C 的双端队列&#xff0c;支持随机访问(O(N)…...