elasticsearch-java客户端jar包中各模块的应用梳理
最近使用elasticsearch-java客户端实现对elasticsearch服务的Api请求,现对elasticsearch-java客户端jar包中各模块的应用做个梳理。主要是对co.elastic.clients.elasticsearch路径下的各子包的简单说明。使用的版本为:co.elastic.clients:elasticsearch-java:8.16.1。
1、_helpers
通过包名字面意义上理解,像一个辅助包,其包括bulk和esql。对其中的某几个类进行说明:
BulkIngester:用于批量将数据摄入(ingest)到 Elasticsearch 中的工具类。利用了 Elasticsearch 的批量 API(_bulk
API)的原理。它会收集多个索引请求,将它们组合成一个或多个批量请求。
EsqlHelper:用于ES|QL数据查询和检索的工具类。
2、_types
基础对象的定义,如:dsl的term查询类、聚合的平均属性、mapping中的属性、分词相关等。
dsl查询相关类的使用,参考前面文章:Elasticsearch Java Api Client中DSL语句的查询方法汇总。
3、async_search
异步搜索API相关类。
Async Search(异步搜索)是一种用于处理长时间运行搜索请求的机制。当面对复杂的搜索查询、大量的数据或者资源受限的情况时,同步搜索可能会导致客户端长时间等待结果。Async Search 允许用户发起搜索请求后,继续执行其他任务,稍后再来获取搜索结果。
4、autoscaling
自动缩放或自动扩展。
在 Elasticsearch API 中,autoscaling(自动缩放)功能用于根据集群的负载情况自动调整资源。这包括自动调整节点数量、资源分配(如 CPU、内存、存储)等,以优化集群性能、降低成本,并确保在不同负载条件下都能提供稳定高效的服务。
5、cat(Compact and aligned text)
在 Elasticsearch API 中,Compact and Aligned Text(CAT)是一组用于获取集群相关信息的接口。这些接口以简洁且格式化的文本形式返回集群的各种状态信息,包括索引信息、节点信息、分片信息等,帮助用户快速了解和监控集群的运行状况。主要命令:
5.1 /_cat/indices
功能:这个命令主要用于查看索引相关的信息。它返回集群中所有索引的详细情况,如索引名称、状态(例如是否打开或关闭)、主分片数量、副本分片数量、文档数量、存储大小等。
health status index uuid pri rep docs.count docs.deleted store.size pri.store.size
green open my_index xxxxxxxxxx 5 1 10000 0 50mb 25mb
5.2 /_cat/nodes
功能:用于获取集群中节点的信息。包括节点名称、IP 地址、端口号、节点角色(如主节点、数据节点等)、负载指标(如 CPU 使用率、内存使用率等)、磁盘使用情况等。
ip heap.percent ram.percent cpu load_1m load_5m load_15m node.role master name
127.0.0.1 40 70 2 0.20 0.15 0.10 dilmrt * node1
5.3 /_cat/shards
提供关于分片的详细信息,包括分片所属的索引、分片的编号、分片所在的节点、分片的状态(如启动中、已分配等)等。
index shard prirep state docs store ip node
my_index 0 p STARTED 5000 25mb 127.0.0.1 node1
my_index 0 r STARTED 5000 25mb 127.0.0.2 node2
6、ccr(Cross-cluster replication)
6.1 概念
跨集群复制是一种高可用解决方案,能够实现数据迁移、数据备份以及降低访问延迟。它采用主备架构模型,在主集群中创建 leader 索引,在备集群中通过主动 Pull 方式复制数据到 follower 索引中,且 follower 索引为只读索引。
6.2 需求
- 数据备份:在不同地理位置的集群间复制数据,以防止单点故障。
- 灾难恢复:在主集群出现故障时,能够迅速切换到备集群。
- 负载平衡:通过跨多个集群分布数据来提高性能和可扩展性。
- 数据分析:跨地理区域整合数据,便于分析。
7、cluster
集群API相关类。
在 Elasticsearch 中,Cluster API 是一组用于管理和获取集群相关信息的接口。它允许用户对整个集群的状态、配置、节点等方面进行操作和查询,是维护和监控 Elasticsearch 集群健康运行的重要工具。
7.1 集群健康状态查询(Cluster Health)
功能描述:通过/_cluster/health端点可以获取集群的健康状况。返回的信息包括集群状态(如绿色、黄色或红色),绿色表示所有主分片和副本分片都已正确分配,黄色表示至少有一个副本分片未分配,红色表示存在未分配的主分片,这通常意味着数据丢失风险。还能获取到活动的分片数量、未分配的分片数量等详细信息。
7.2 集群状态查询(Cluster State)
功能描述:/_cluster/state端点提供了集群的完整状态信息。这包括集群的元数据,如索引的设置、映射、分片分配情况,以及节点的信息,如节点的角色(主节点、数据节点等)、节点的连接状态等。与集群健康状态查询相比,它提供了更全面、更详细的集群信息。
7.3 集群设置管理(Cluster Settings)
功能描述:使用/_cluster/settings端点可以获取和修改集群的设置。这包括一些全局的配置参数,如集群的名称、自动发现节点的方式、索引的默认配置等。用户可以通过 API 来更新这些设置,以适应不同的业务需求和环境变化。
8、connector
此包下,主要分为Connector和Sync Jobs 两个API。 用于管理数据连接(Connectors)和同步作业(Sync Jobs)。这些 API 允许用户将外部数据源与 Elasticsearch 集成,确保数据能够持续、高效地从外部系统同步到 Elasticsearch 中,以便进行后续的搜索、分析等操作。
9、core
核心模块,请求与响应相关类的定义。
10、dangling_indices
悬空索引的API。
10.1 定义
在 Elasticsearch 中,悬空索引(Dangling Index)是一种特殊的索引状态。它主要是指在集群状态更新过程中,索引的元数据在集群状态中被标记为已删除,但索引的实际数据(如分片)仍然存在于节点的存储中。这种情况可能会导致一些问题,例如占用磁盘空间,并且可能会干扰集群的正常操作。
10.2 产生原因
- 集群状态更新冲突:当集群在进行复杂的状态更新操作时,比如同时处理多个索引的创建、删除和更新操作。如果在索引删除操作的过程中出现了故障或者网络问题,就可能导致索引的元数据在集群状态中被删除,但实际的索引数据没有被完全清理。例如,主节点发送了删除索引的指令,但是在部分从节点还没有完成删除操作时,集群状态就已经更新为索引已删除,那么这些从节点上的索引分片就会成为悬空索引。
- 节点故障恢复异常:当节点出现故障后重新加入集群时,如果在故障前节点正在处理索引相关操作,恢复过程可能出现问题。比如,节点在故障前正在删除索引,但是恢复时没有正确处理这个未完成的删除操作,就可能导致索引数据残留,形成悬空索引。
11、enrich
丰富API。
在 Elasticsearch API 中,Enrich API 用于通过将外部数据与现有索引数据相结合,来丰富(enrich)索引中的文档内容。这有助于在搜索和分析过程中提供更全面的信息,提升数据的价值。
11.1 创建 Enrich Policy
创建一个富集策略来定义如何从外部数据源获取数据以及如何将这些数据与索引中的文档进行匹配。可以通过在请求体中指定源索引(source index)和匹配字段(matching fields)来实现。
例如,假设有一个客户信息索引和一个订单索引,想要将客户的详细信息(如姓名、联系方式等)添加到订单文档中,可以创建一个富集策略,将客户信息索引作为源索引,使用客户 ID 作为匹配字段。
{"name": "customer_info_enrichment","match": {"indices": "customer_info_index","match_field": "customer_id","enrich_fields": ["customer_name", "customer_contact_info"]}
}
11.2 执行 Enrich Policy
创建好富集策略后,需要执行它来实际进行数据富集。通过向/_enrich/policy/{policy_name}/_execute端点(其中{policy_name}是富集策略的名称)发送请求来执行策略。执行过程中,Elasticsearch 会按照策略中的定义,扫描源索引和目标索引,找到匹配的文档,并将指定的字段内容添加到目标文档中。
例如,对于上面创建的 “customer_info_enrichment” 策略,执行后,订单索引中的文档(假设订单索引中有客户 ID 字段)会根据客户 ID 与客户信息索引中的记录进行匹配,然后将客户姓名和联系方式等信息添加到订单文档中。
12、eql(Event Query Language)
在 Elasticsearch API 中,Event Query Language(EQL)是一种专门用于处理事件数据的查询语言。它的目的是让用户能够高效地从存储在 Elasticsearch 中的大量事件数据中检索、分析和关联事件,尤其适用于安全分析、系统监控和故障排查等场景。
12.1 事件序列查询
EQL 的一个重要特点是能够进行事件序列查询。例如,通过sequence by子句可以指定按照某个字段(如用户 ID)对事件进行分组,然后查询事件的先后顺序。
12.2 条件筛选与逻辑组合
与传统查询语言类似,EQL 支持条件筛选。可以使用where子句来指定事件需要满足的条件。
12.3 事件关联与聚合
EQL 支持事件之间的关联和聚合操作。例如,通过关联用户登录事件和文件访问事件,可以分析用户在登录系统后访问了哪些文件。
13、esql (Elasticsearch Query Language (ES|QL))
The Elasticsearch Query Language (ES|QL) 是 Elasticsearch 提供的一种高级查询语言。它旨在提供一种更简单、更直观的方式来查询和检索存储在 Elasticsearch 中的数据,融合了传统数据库查询语言的一些特点和 Elasticsearch 特有的功能,用于处理结构化和半结构化数据。
13.1 基础查询
SELECT field1, field2
FROM index_name
WHERE condition;
13.2 函数使用
SELECT AVG(price)
FROM product_index;
13.3 关联查询与子查询
SELECT o.order_id, c.customer_name
FROM orders_index o
JOIN customers_index c ON o.customer_id = c.customer_id;
13.4 聚合与分组查询
SELECT product_category, SUM(sales_amount)
FROM sales_index
GROUP BY product_category;
14、features
功能API,查询和重置Elasticsearch和Elasticsearch插件提供的功能。
15、fleet
队列API。包括:获取全局检查点、队列搜索、队列多重搜索,支持Fleet使用Elasticsearch作为内部代理和操作数据的数据存储。这些API是实验性的,仅供Fleet内部使用。
16、graph
Graph explore API(图形浏览API)
在 Elasticsearch API 中,Graph API 用于处理和分析数据之间的关系,构建和查询图结构数据。它允许用户发现文档之间隐藏的关联关系,这在知识图谱构建、社交网络分析、推荐系统等诸多领域都非常有用。
17、ilm(Index lifecycle management)
索引生命周期管理的API,是elasticsearch提供的一种用于自动管理索引的生命周期的功能。允许使用者定义索引的各个阶段,从创建至删除。并允许使用者在每个阶段定义索引需要执行的特定动作。这些动作包含索引创建,rollover滚动规则, shrink收缩索引,索引降冷,删除索引等动作。极大程度的降低了elasticsearch索引管理的成本。
参考文档:elasticsearch的ILM(Index Lifecycle Management)操作详解-腾讯云开发者社区-腾讯云
18、indices
索引API。
能够管理单个索引、索引设置、别名、映射和索引模板。
19、inference
推理API。
在 Elasticsearch 中,Inference API 用于在数据索引和搜索过程中集成机器学习推理能力。它允许用户利用预训练的机器学习模型对文本或其他数据类型进行处理,例如分类、实体识别、文本嵌入等操作,从而增强 Elasticsearch 的数据分析和检索功能。
20、ingest
摄取API。
Ingest API 是 Elasticsearch 中一个强大的工具,用于在数据进入 Elasticsearch 之前对其进行预处理。它允许用户定义一系列的处理器(processors),这些处理器可以对文档进行各种操作,如转换、过滤、丰富数据内容等,以确保进入索引的文档符合特定的要求或包含更有价值的信息。处理器可以组合使用,形成一个管道(pipeline)。
- a、创建和管理 Ingest 管道(Pipeline)。
- b、在索引过程中应用 Ingest 管道
- c、geo:地理ip统计
- d、simulate:模拟操作,主要用于模拟请求在 Elasticsearch 集群中的执行情况。它允许用户在不实际执行可能会对数据产生影响的操作(如索引、搜索、更新等操作)的情况下,查看这些操作会如何被集群处理,包括查看查询的解析过程、聚合的执行方式以及相关的性能影响等诸多方面。
21、license
Licensing APIs 主要用于管理 Elasticsearch 的许可证。这些 API 提供了一种方式来获取许可证信息、安装新的许可证、更新现有许可证以及检查许可证的有效性,确保软件的使用符合许可协议的规定。
22、logstash
Logstash APIs 主要用于管理和监控 Logstash 与 Elasticsearch 之间的交互。Logstash 是一个数据收集引擎,它可以从多种数据源获取数据,并将其发送到 Elasticsearch 进行存储和后续分析。这些 API 提供了对 Logstash 配置、管道状态、监控数据等方面的操作和查询功能。
23、migration
迁移Apis,主要针对deprecations和system_features的处理。
- migration/deprecations相关内容中,主要涉及到在迁移过程中已弃用(deprecations)功能的处理。随着 Elasticsearch 版本的不断更新,一些旧的功能、配置或 API 可能会因为技术改进、性能优化或安全原因而被标记为弃用。理解和正确处理这些弃用内容是顺利进行迁移的关键。
- migration/system_features相关的 API 主要用于处理系统特性在版本升级过程中的迁移问题。
24、ml(Machine learning)
Machine Learning API 是用于在 Elasticsearch 中构建、训练、部署和管理机器学习模型的接口。它使企业能够利用数据中的模式和趋势,通过机器学习算法进行异常检测、预测分析等操作,从而挖掘数据的潜在价值,提升数据分析的深度和广度。
25、monitoring
它主要用于高效地将大量的监控信息发送到 Elasticsearch 进行存储和后续分析。这些监控数据可以来自 Elasticsearch 自身的各个组件,如节点的性能数据、索引的状态数据,也可以是与 Elasticsearch 集成的外部系统的数据。
26、nodes
Nodes API 是一组用于获取和管理集群中节点相关信息的接口。这些接口可以帮助用户了解节点的状态、配置、性能指标等诸多方面的情况,对于监控、维护和优化 Elasticsearch 集群的运行非常关键。
27、query_rules
此功能为8.15.0版本新增。
“Query Rules” 是用于控制和定制查询行为的规则集合。这些规则可以帮助用户根据特定的业务需求、数据特点或性能要求,对查询操作进行优化、限制或扩展。
主要应用场景:查询优化规则、安全与访问控制规则、数据过滤与限制规则
28、rollup
Rollup APIs 用于创建和管理数据聚合(rollup)任务。Rollup 是一种数据处理技术,它可以将原始的详细数据按照一定的规则(如时间间隔、字段值范围等)进行聚合,生成汇总数据。这有助于减少数据存储量、提高查询性能,尤其适用于处理大规模的时间序列数据。
29、search_application
Search Application APIs 是用于构建和管理搜索应用程序的一组接口。这些 API 允许用户自定义搜索体验,包括配置搜索策略、管理搜索结果的展示、处理用户输入、行为分析等,从而满足各种复杂的搜索需求,如企业级文档搜索、电商产品搜索或知识图谱搜索等。
30、searchable_snapshots
searchable - snapshots(可搜索快照)是一种用于以低成本存储和高效查询大量数据的功能。它允许用户将数据快照存储在低成本的存储介质(如对象存储)上,并且能够像查询本地存储数据一样对这些快照进行搜索,而无需将数据全部恢复到本地磁盘。
31、security
Security API 是用于管理和配置 Elasticsearch 安全相关功能的一组接口。它的主要目的是确保数据的安全性、用户访问的合法性以及集群操作的安全性,涵盖用户认证、授权、加密等多个安全领域。
主要功能:用户认证(用户管理)、授权(角色与权限管理)、加密(数据加密、密钥管理)。
32、shutdown
Shutdown API 是用于安全关闭 Elasticsearch 节点或获取节点关闭状态的一组接口。
33、slm(Snapshot lifecycle management)
快照生命周期管理(Snapshot Lifecycle Management,简称 SLM)是 Elasticsearch 中的一个功能,用于自动化地创建、保留和删除索引快照。它的目的是确保数据备份的一致性、高效性和合规性,帮助用户有效地管理数据备份策略,以应对数据丢失、灾难恢复等情况。
34、snapshot
快照(Snapshot)是数据在某一时刻的备份,而快照和恢复 API(Snapshot and Restore APIs)用于创建、管理这些数据备份,并在需要时将数据从备份中恢复。这对于数据保护、灾难恢复和数据迁移等场景至关重要。
35、sql
SQL API 提供了一种使用类 SQL 语法来查询 Elasticsearch 数据的方式。这使得熟悉 SQL 的用户能够更方便地与 Elasticsearch 中的数据进行交互,降低了查询数据的学习成本,并且在某些复杂查询场景下提供了更简洁、高效的查询途径。
在使用sql时,可使用对应的sql插件,如:OpenDistro for Elasticsearch SQL
36、ssl
SSL(Secure Sockets Layer)API 主要用于管理与 SSL/TLS(Transport Layer Security)相关的配置。SSL/TLS 是一种加密协议,用于确保数据在网络传输过程中的安全性和保密性。这些 API 允许用户配置节点之间以及客户端与节点之间通信的加密方式,从而保护敏感数据免受窃听、篡改等网络安全威胁。
37、synonyms
Synonyms API 用于管理同义词。同义词是指在语义上相近或相同的词汇。通过使用这些 API,可以有效地处理用户查询中的同义词,从而提高搜索的准确性和召回率。例如,当用户搜索 “汽车”,也能返回包含 “轿车”“机动车” 等同义词的文档。
38、tasks
Tasks API 主要用于管理和查询集群中正在执行的任务。它允许用户获取任务的详细信息,包括任务的状态、执行时间、所属节点等,帮助用户监控和控制集群中的任务执行情况,以便更好地管理集群资源、排查问题以及优化任务执行效率。
我用到的地方:Reindex重置索引时,请求参数wait_for_completion=false(不等待完成)时,会返回一个taskId,可使用此taskId通过task接口获取索引重置的进度。
39、text_structure
Text Structure API 来帮助用户更好地理解和处理文本数据的结构,以便更有效地将其摄入到 Elasticsearch 中进行后续的分析和检索等操作。
40、transform
Transform API 用于创建和管理数据转换任务。它的主要目的是将原始数据从一个或多个索引中提取出来,按照用户定义的规则进行转换,然后将转换后的数据存储到新的目标索引中。这种数据转换可以用于多种场景,如数据聚合、数据清理、数据格式调整等,以满足不同的数据分析和应用需求。
41、watcher
Watcher API 是用于创建、管理和执行监控任务(称为 “watch”)的接口。它允许用户定义一系列条件来监控 Elasticsearch 集群的状态、索引数据的变化或者外部数据源的信息,并且在满足特定条件时触发相应的操作,如发送通知、执行脚本或者更新文档等,从而实现自动化的监控和响应机制。
42、xpack
X - Pack API 是 Elasticsearch 中与 X - Pack 插件相关的一组接口。X - Pack 是 Elasticsearch 的一个扩展包,提供了安全、监控、告警、机器学习等一系列高级功能。X - Pack API 的目的是让用户能够以编程方式对这些高级功能进行配置、管理和获取信息,从而实现对 Elasticsearch 集群更精细的管控和更深入的洞察。
相关文章:
elasticsearch-java客户端jar包中各模块的应用梳理
最近使用elasticsearch-java客户端实现对elasticsearch服务的Api请求,现对elasticsearch-java客户端jar包中各模块的应用做个梳理。主要是对co.elastic.clients.elasticsearch路径下的各子包的简单说明。使用的版本为:co.elastic.clients:elasticsearch-…...
android13 系统文字大小和显示大小的修改
没啥可解释,如题所示,修改系统默认文字大小和显示大小 一修改系统文字大小: 系统文字太小,需要修改文字大小修改如下 commit 82675b7d8ac278e80d94e6b2b1417b266065d2ec Author: admin <bianjbflyscale.cn> Date: Sat …...
【华为OD-E卷 - 任务总执行时长 100分(python、java、c++、js、c)】
【华为OD-E卷 - 任务总执行时长 100分(python、java、c、js、c)】 题目 任务编排服务负责对任务进行组合调度。 参与编排的任务有两种类型,其中一种执行时长为taskA,另一种执行时长为taskB。 任务一旦开始执行不能被打断&#x…...
vue中子组件给父组件传值
在 Vue.js 中,子组件向父组件传递数据或事件通常是通过 $emit 方法来实现的。这个方法允许子组件触发一个自定义事件,父组件可以通过监听这些事件来接收信息。以下是实现这一过程的基本步骤: 1. 子组件触发事件 在子组件中,使用…...
【js】记录预览pdf文件
接口调用拿到pdf的文件流,用blob处理这个文件流拿到url,使用window.open跳转新的窗口进行预览 api({dataType: blob, }).then(res >{if(res.code 0){this.previewPDF(res,application/pdf;charsetutf-8,pdf文件名)} })previewPDF (res, type, fname…...
【Spring MVC 异常处理机制】应对意外情况
在 Web 应用中,异常是不可避免的。用户的输入不合法,服务的某部分出错,或者数据库连接失败,这些情况都可能触发异常。那么问题来了:如何优雅地捕获并处理这些异常,让用户体验不至于因为一时的错误而受损&am…...
《计算机组成及汇编语言原理》阅读笔记:p128-p132
《计算机组成及汇编语言原理》学习第 10 天,p128-p132 总结,总计 5 页。 一、技术总结 1.8088 organization and architecture 8088处理器是16位电脑,寄存器是16位,数据总线(data bus)是8位,地址总线是20位。 (1)g…...
留学生交流互动系统|Java|SSM|VUE| 前后端分离
【技术栈】 1⃣️:架构: B/S、MVC 2⃣️:系统环境:Windowsh/Mac 3⃣️:开发环境:IDEA、JDK1.8、Maven、Mysql5.7 4⃣️:技术栈:Java、Mysql、SSM、Mybatis-Plus、VUE、jquery,html 5⃣️数据库可…...
Windows IPC
进程间通信 (IPC,Inter-Process Communication) 进程间通信 (IPC) 是一种在进程之间建立连接的机制,在两台计算机或一台多任务计算机上运行,以允许数据在这些进程之间流动。进程间通信 (IPC) 机制通常用于客户端/服务器环境,并在…...
BMS存储模块的设计
目的 电池管理系统中存在着数据本地存储的要求,保证控制器重新上电后能够根据存储器中的一些参数恢复控制状态,和信息的下电存储1.继电器故障信息的存储。2. 系统性故障的存储。3.SOC、SOH相关信息的存储。4.均衡参数的存储。5.系统时间信息。6.出厂信息…...
2024-12-29-sklearn学习(25)无监督学习-神经网络模型(无监督) 烟笼寒水月笼沙,夜泊秦淮近酒家。
文章目录 sklearn学习(25) 无监督学习-神经网络模型(无监督)25.1 限制波尔兹曼机25.1.1 图形模型和参数化25.1.2 伯努利限制玻尔兹曼机25.1.3 随机最大似然学习 sklearn学习(25) 无监督学习-神经网络模型(无监督) 文章参考网站&a…...
【动态规划篇】穿越算法迷雾:约瑟夫环问题的奇幻密码
欢迎拜访:羑悻的小杀马特.-CSDN博客 本篇主题:带你众人皆知的约瑟夫环问题 制作日期:2024.12.29 隶属专栏:C/C题海汇总 目录 引言: 一约瑟夫环问题介绍: 11问题介绍: 1.2起源与历史背景&…...
【Elasticsearch】DSL查询文档
目录 1.DSL查询文档 1.1.DSL查询分类 1.2.全文检索查询 1.2.1.使用场景 1.2.2.基本语法 1.2.3.示例 1.2.4.总结 1.3.精准查询 1.3.1.term查询 1.3.2.range查询 1.3.3.总结 1.4.地理坐标查询 1.4.1.矩形范围查询 1.4.2.附近查询 1.5.复合查询 1.5.1.相关性算分 …...
MySQL第三弹----函数
笔上得来终觉浅,绝知此事要躬行 🔥 个人主页:星云爱编程 🔥 所属专栏:MySQL 🌷追光的人,终会万丈光芒 🎉欢迎大家点赞👍评论📝收藏⭐文章 一、合计/统计函数 1.1count…...
路由器刷机TP-Link tp-link-WDR5660 路由器升级宽带速度
何在路由器上设置代理服务器? 如何在路由器上设置代理服务器? 让所有连接到该路由器的设备都能够享受代理服务器的好处是一个不错的选择,特别是当需要访问特定的网站或加速网络连接的时候。下面是一些您可以跟随的步骤,使用路由器…...
Qml 中实现水印工具
【写在前面】 在 Qt 的 Quick 模块中,QQuickPaintedItem 是一个非常有用的类,它允许我们在 Qml 中自定义绘制逻辑。 我们可以通过这种方式实现水印工具,包括在文本、图片或整个窗口上添加水印。 本文将介绍如何在 Qml 中实现一个简单但功能…...
2024年数字政府服务能力优秀创新案例汇编(附下载)
12月19日,由中国电子信息产业发展研究院指导、中国软件评测中心主办的“2024数字政府评估大会”在北京召开,大会主题是:为公众带来更好服务体验。 会上,中国软件评测中心副主任吴志刚发布了2024年数字政府服务能力评估结果&#…...
数据链路层知识要点
这里写目录标题 数据链路层的功能1.封装成帧2.差错控制2.1循环冗余校验(CRC)2.2奇偶校验法 3.可靠传输3.1停止等待协议(SW)3.2后退N帧协议(GBN)3.3选择重传协议(SR) 4.使用广播信道的数据链路层5.以太网(局域网)5.1以太网与网卡5.2以太网的MAC地址 6.VLA…...
Linux实验报告6-用户管理
目录 一:实验目的 二:实验内容 (1)查看 Linux 系统的相关文件,回答以下问题 ①root 用户的 UID为多少?他的主目录在哪里? ②请举出一个普通用户,指出他的主目录及其所使用的 shell 是什么? (2)新建用户abc1(abc代表你的姓名拼音字母,下同),为其…...
微信小程序打印生产环境日志
微信小程序打印生产环境日志 新建一个log.js文件,写入以下代码: let log wx.getRealtimeLogManager ? wx.getRealtimeLogManager() : nullmodule.exports {debug() {if (!log) returnlog.debug.apply(log, arguments)},info() {if (!log) returnlog.i…...
Edge如何获得纯净的启动界面
启动Edge会出现快速链接,推广链接,网站导航,显示小组件,显示信息提要,背景 ●复杂页面 ●精简页面 点击页面设置按钮 关闭快速链接 关闭网站导航 关闭小组件 关闭信息提要 关闭背景 关闭天气提示 精简页面看起来十分舒…...
探索开源项目 kernel:技术的基石与无限可能
在开源的广袤世界中,有一颗璀璨的明星——kernel(https://gitee.com/openeuler/kernel),它宛如一座技术的宝藏,蕴含着无数的智慧与创新,为众多开发者所瞩目和敬仰。 一、初窥 kernel 项目 当我第一次接触…...
使用PHP函数 “setcookie“ 设置cookie
在网站开发中,cookie是一种非常常用的技术,它用于在用户的浏览器中存储少量的数据,以便在不同页面之间传递信息。PHP提供了一个名为 "setcookie" 的函数,用于设置cookie的值和属性。在本文中,我们将学习如何…...
LUA基础语法
目录 变量篇 算数运算符 条件分支语句与循环语句 函数 表 Table 全局变量与本地变量 协程 元表 面向对象(封装,继承,多态) 常用自带库 垃圾回收 变量篇 print("hello") print("lua") --注释 --[[…...
链路聚合
链路聚合 目的:备份链路以及提高链路带宽。 链路聚合技术(Eth-Trunk):将多个物理接口捆绑成一个逻辑接口,将N条物理链路逻辑上聚合为一条逻辑链路。 正常情况下,想要配置链路聚合 1、A设备通过多条链路连接…...
OpenCV-Python实战(4)——图像处理基础知识
一、坐标 在 OpenCV 中图像左上角坐标为(0,0),竖直向下为 Y(height) ;水平向右为 X(width)。 二、生成图像 2.1 灰度图像 img np.zeros((h,w), dtype np.uint8) i…...
爬虫案例-爬取网页图片
爬虫案例-爬取网页图片 1、安装依赖库2、爬取图片的代码3、效果图 1、安装依赖库 #以下是安装http请求的第三方库 pip install requests urllib3 #以下是安装处理图片的第三方库 pip install image pillow #以下是安装python解析html的第三方库 pip install beautifulsoup4 …...
KAN网络最新优化改进——基于小波变换的KAN网络
KAN网络概念 KAN网络(Kolmogorov-Arnold Networks)是一种革命性的神经网络架构,源于Kolmogorov-Arnold表示定理。 该定理表明,多变量连续函数可通过有限数量的单变量连续函数的嵌套加法表示 。KAN的核心创新在于将传统神经网络中的固定激活函数替换为可学习的单变量函数,…...
【潜意识Java】深入理解Java中的方法重写,理解重写的意义,知道其使用场景,以及重写的访问权限限制等的完整笔记详细总结。
目录 一、方法重写是啥玩意儿 (一)定义和概念 (二)为啥要方法重写 二、方法重写的规则 (一)方法签名必须相同 (二)返回类型的要求 (三)访问权限的限制…...
Android Thread优先级和调度算法
Thread优先级设置方式: java: Process.setThreadPriority: android.os.Process.setThreadPriority(Process.THREAD_PRIORITY_LOWEST、Process.THREAD_PRIORITY_URGENT_AUDIO、-20) c: #include <sched.h> setpriority( https://blo…...
OpenCV-Python实战(6)——图相运算
一、加法运算 1.1 cv2.add() res cv2.add(img1,img2,dstNone,maskNone,dtypeNone) img1、img2:要 add 的图像对象。(shape必须相同) mask:图像掩膜。灰度图(维度为2)。 dtype:图像数据类型…...
2、C#基于.net framework的应用开发实战编程 - 设计(二、四) - 编程手把手系列文章...
二、设计; 二.四、制定设计规范; 编码规范在软件编程里起到了非常重要的作用,主要是让代码更加的规范化,更加的简洁,更加的漂亮,更加的能够面向对象显示。 以前那个系列就有发布C#的编码规范的文…...
DVWA靶场Brute Force (暴力破解) 漏洞low(低),medium(中等),high(高),impossible(不可能的)所有级别通关教程
目录 暴力破解low方法1方法2 mediumhighimpossible 暴力破解 暴力破解是一种尝试通过穷尽所有可能的选项来获取密码、密钥或其他安全凭证的攻击方法。它是一种简单但通常无效率的破解技术,适用于密码强度较弱的环境或当攻击者没有其他信息可供利用时。暴力破解的基…...
sql字段值转字段
表alertlabel中记录变字段 如何用alertlabel表得到下面数据 实现的sql语句 select a.AlertID, (select Value from alertlabel where AlertIDa.AlertID and Labelhost) as host, (select Value from alertlabel where AlertIDa.AlertID and Labeljob) as job from (select …...
lua和C API库一些记录
相关头文件解释 lua.h:声明lua提供的基础函数,所有内容都有个前缀lua_; luaxlib.h:声明辅助库提供的函数,所有内容都有个前缀luaL_; lualib.h:声明了打开标准库的函数; 辅助库对…...
游戏引擎学习第68天
关于碰撞和交互的进展回顾 在进行引擎架构设计时,我们决定开始探讨如何处理游戏中的碰撞问题。举个例子,比如一把被投掷的剑碰到了敌人。我们希望能够响应这些事件,开始构建游戏中的互动机制。这些互动是游戏设计的核心部分,游戏…...
LeetCode430周赛T3
题目描述 给定一个只包含正整数的数组 nums,我们需要找到其中的特殊子序列。特殊子序列是一个长度为4的子序列,用下标 (p, q, r, s) 表示,它们满足以下条件: 索引顺序:p < q < r < s,且相邻坐标…...
网络:常用的以太网PHY芯片
常用的以太网PHY芯片(物理层芯片)主要负责将数字信号转换为适合在物理介质上传输的模拟信号。它们是网络设备(如交换机、路由器、网卡等)中的关键组件,通常工作在OSI模型中的物理层和数据链路层之间。 以下是一些常见…...
前端项目 node_modules依赖报错解决记录
1.首先尝试解决思路 npm报错就切换yarn , yarn报错就先切换npm删除 node_modules 跟 package-lock.json文件重新下载依 2. 报错信息: Module build failed: Error: Missing binding D:\vue-element-admin\node_modules\node-sass\vendor\win32-x64-8…...
小猫可以吃面包吗?
在宠物饲养日益普及的当下,小猫的饮食健康成为众多铲屎官关注的焦点。其中,小猫是否可以吃面包这一问题引发了不少讨论。 从面包的成分来看,其主要原料是面粉、水、酵母和盐,部分还会添加糖、油脂、鸡蛋、牛奶等。面粉富含碳水化…...
ACPI PM Timer
ACPI PM Timer 概述: ACPI PM Timer是一个非常简单的计时器,它以 3.579545 MHz 运行,在计数器溢出时生成系统控制中断(SCI)。它精度较低,建议使用其他定时器,如HPET或APIC定时器。 检测ACPI P…...
算法学习(19)—— 队列与 BFS
关于bfs bfs又称宽搜,全称是“宽度优先遍历”,然后就是关于bfs的三个说法:“宽度优先搜索”,“宽度优先遍历”,“层序遍历”,这三个都是同一个东西,前面我们介绍了大量的深度优先遍历的题目已经…...
python|利用ffmpeg按顺序合并指定目录内的ts文件
前言: 有的时候我们利用爬虫爬取到的ts文件很多,但ts文件只是视频片段,并且这些视频片段是需要按照一定的顺序合并的,通常ts文件合并输出格式为mp4格式 因此,本文介绍利用python,调用ffmpeg来批量的按自己…...
腾讯音乐:说说Redis脑裂问题?
Redis 脑裂问题是指,在 Redis 哨兵模式或集群模式中,由于网络原因,导致主节点(Master)与哨兵(Sentinel)和从节点(Slave)的通讯中断,此时哨兵就会误以为主节点…...
jmeter并发用户逐步递增压测找性能拐点
jmeter并发用户逐步递增压测找性能拐点 目的: 使用逐层递增的并发压力进行测试,找到单功能的性能拐点(一般需要包含四组测试结果,拐点前一组,拐点一组,拐点后两组),统计响应时间、…...
跟着问题学3.2——Fast R-CNN详解及代码实战
R-CNN的不足 2014年,Ross Girshick提出RCNN,成为目标检测领域的开山之作。一年后,借鉴空间金字塔池化思想,Ross Girshick推出设计更为巧妙的Fast RCNN(https://github.com/rbgirshick/fast-rcnn)ÿ…...
【yolov5】实现FPS游戏人物检测,并定位到矩形框上中部分,实现自瞄
介绍 本人机器学习小白,通过语言大模型百度进行搜索,磕磕绊绊的实现了初步效果,能有一些锁头效果,但识别速度不是非常快,且没有做敌友区分,效果不是非常的理想,但在4399小游戏中爽一下还是可以…...
软考高级:磁盘阵列(RAID)
** 概念讲解 ** 磁盘阵列是由多个磁盘组合成的一个大容量存储设备。它主要有以下几个作用: 提高存储容量:通过将多个磁盘组合在一起,可以获得比单个磁盘更大的存储容量。比如,一个磁盘的容量是 1TB,使用四个磁盘组成…...
梳理你的思路(从OOP到架构设计)_介绍Android的Java层应用框架05
1、认识ContentProvider...
torch.nn.LSTM介绍
torch.nn.LSTM 是 PyTorch 提供的一个高级封装,用于构建长短时记忆网络(LSTM)。相比手动实现,torch.nn.LSTM 更高效且支持批量处理、双向 LSTM、多层 LSTM 等功能,适合大多数实际应用。 LSTM基本原理 门控机制(Gating Mechanism)是深度学习中常见的一种设计,用于控制信…...