Day03-索引模板,DSL语句,集群迁移API,ES集群状态统计API,KQL语句及分片重路由API实战

Day03-索引模板,DSL语句,集群迁移API,ES集群状态统计API,KQL语句及分片重路由API实战

  • 1、索引模板
    • 1.1 什么是索引模板
    • 1.2 查看索引模板
    • 1.3 创建/修改索引模板
    • 1.4 删除索引模板
  • 2、ES的DSL语句查询
    • 2.1 什么是DSL
    • 2.2 全文检索-match查询
    • 2.3 精确匹配-match_phrase查询
    • 2.4 全量查询-match_all查询
    • 2.5 分页查询-size-form
    • 2.6 使用"\_source"查看的指定字段
    • 2.7 查询存在某个字段的文档-exists
    • 2.8 语法高亮-highlight
    • 2.9 基于字段进行排序查询-sort
    • 2.10 多条件查询-bool
    • 2.11 过滤查询(范围查询-filter)
    • 2.12 精确匹配多个值-terms
    • 2.13 多词搜索
    • 2.14 权重案例
    • 2.15 聚合查询
  • 3、ES集群迁移实战
  • 4、ES集群常用的API
    • 4.1 ES集群健康状态API(health)
    • 4.2 ES集群的设置及优先级(settings)
    • 4.3 集群状态API(state)
    • 4.4 集群统计API
    • 4.5 查看集群的分片分配情况(allocation)
    • 4.6 集群分片重路由API(reroute)

昨日内容回顾:

  • ES集群的常见术语

    • index

    • shard

    • replica

    • document

    • 主分片和副本分片

      • primary shard: read wirte (rw)
      • replica shard: read only (ro)
  • 索引的管理

    • PUT http://10.0.0.101:9200/index_name
    • POST http://10.0.0.101:9200/index_name/_settings
    • DELETE http://10.0.0.101:9200/index_name
    • GET http://10.0.0.101:9200/index_name
    • GET http://10.0.0.101:9200/_cat/indices
    • POST http://10.0.0.101:9200/index_name/_close
    • POST http://10.0.0.101:9200/index_name/_open
    • POST http://10.0.0.101:9200/_alias
  • 文档的管理

    • POST http://10.0.0.101:9200/index_name/_doc[/document_id]
    • DELETE http://10.0.0.101:9200/index_name/_doc/document_id
    • POST http://10.0.0.101:9200/index_name/_doc/document_id/_update
    • GET http://10.0.0.101:9200/index_name/_doc/document_id
    • GET http://10.0.0.101:9200/index_name/_search
  • 文档的批量操作

    • POST http://10.0.0.101:9200/_bulk
    • POST http://10.0.0.101:9200/_mget
  • 自定义数据类型:

    • date
    • ip
    • keyword
    • text
    • double
    • long
  • 中文分词器

    • IK
    • 支持自定义词典
  • kibana的部署

    • 索引管理
    • 开发工具使用
    • 官方样例数据安装卸载

1、索引模板

1.1 什么是索引模板

指的是创建索引的一种方式。用户可以根据需求自定义对应的索引模板。

1.2 查看索引模板

(1)查看所有的索引模板

GET http://10.0.0.103:9200/_template

(2)查看单个索引模板

GET http://10.0.0.103:9200/_template/.monitoring-es

1.3 创建/修改索引模板

POST http://10.0.0.103:9200/_template/oldboyedu-linux85
{"aliases": {"DBA": {},"SRE": {},"K8S": {}},"index_patterns": ["oldboyedu-linux85*"],"settings": {"index": {"number_of_shards": 3,"number_of_replicas": 0}},"mappings": {"properties":{"ip_addr": {"type": "ip"},"access_time": {"type": "date"},"address": {"type" :"text"},"name": {"type": "keyword"}}}
}

1.4 删除索引模板

DELETE http://10.0.0.103:9200/_template/oldboyedu-linux85

2、ES的DSL语句查询

2.1 什么是DSL

Elasticsearch 提供了基于JSON的完整 Query DSL(Domain Specific Language,领域特定语言)来定义查询。

准备数据:
(1)创建索引添加映射关系

PUT http://10.0.0.101:9200/oldboyedu-linux85-shopping
{"mappings": {"properties": {"item": {"type": "text"},"title": {"type": "text"},"price": {"type": "double"},"type": {"type": "keyword"},"group": {"type": "long"},"auther": {"type": "text"},"birthday": {"type": "date","format": "yyyy-MM-dd"},"province": {"type": "keyword"},"city": {"type": "keyword"},"remote_ip": {"type": "ip"}}}
}

(2)导入数据

POST 10.0.0.101:9200/_bulk

参考"Linux85期商品收集作业.json"内容即可。

2.2 全文检索-match查询

(1)查询彭斌收集的数据

GET 10.0.0.101:9200/oldboyedu-linux85-shopping/_search
{"query":{"match":{"auther":"彭斌"}}
}

2.3 精确匹配-match_phrase查询

(1)查询张宇杰的数据

GET 10.0.0.101:9200/oldboyedu-linux85-shopping/_search
{"query":{"match_phrase":{"auther":"张宇杰"}}
}

2.4 全量查询-match_all查询

GET 10.0.0.101:9200/oldboyedu-linux85-shopping/_search
{"query": {"match_all": {}}
}

2.5 分页查询-size-form

了解原理

image-20240529135319722

(1)每页显示3条数据,查询第四页

GET 10.0.0.101:9200/oldboyedu-linux85-shopping/_search
{"query":{"match_phrase":{"auther":"张宇杰"}},"size": 3,"from":9
}

(2)查询第六组数据,每页显示7条数据,查询第9页

GET 10.0.0.101:9200/oldboyedu-linux85-shopping/_search
{"query":{"match":{"group":6}},"size":7,"from": 56
}相关参数说明:size:指定每页显示多少条数据,默认值为10.from:指定跳过数据偏移量的大小,默认值为0,即默认看第一页。查询指定页码的from值 = "(页码 - 1) * 每页数据大小(size)"温馨提示:生产环境中,不建议深度分页,百度的页码数量控制在76页左右。

2.6 使用"_source"查看的指定字段

GET 10.0.0.101:9200/oldboyedu-linux85-shopping/_search
{"query":{"match_phrase":{"auther":"丘鸿彬"}},"_source":["title","auther","price"]
}

2.7 查询存在某个字段的文档-exists

GET 10.0.0.101:9200/oldboyedu-linux85-shopping/_search
{"query": {"exists" : {"field": "hobby"}}
}

2.8 语法高亮-highlight

GET 10.0.0.101:9200/oldboyedu-linux85-shopping/_search
{"query": {"match_phrase": {"title": "孙子兵法"}},"highlight": {"pre_tags": ["<span style='color:red;'>"],"post_tags": ["</span>"],"fields": {"title": {}}}
}相关参数说明:highlight:设置高亮。fields:指定对哪个字段进行语法高亮。pre_tags:自定义高亮的前缀标签。post_tags:自定义高亮的后缀标签。

2.9 基于字段进行排序查询-sort

01-升序查询最便宜商品及价格

GET 10.0.0.101:9200/oldboyedu-linux85-shopping/_search
{"query":{"match_phrase":{"auther":"于萌"}},"sort":{"price":{"order": "asc"}},"size":1
}

02-降序查询最贵的商品及价格

GET 10.0.0.101:9200/oldboyedu-linux85-shopping/_search
{"query":{"match_phrase":{"auther":"于萌"}},"sort":{"price":{"order": "desc"}},"size":1
}相关字段说明:sort:基于指定的字段进行排序。此处为指定的是"price"order:指定排序的规则,分为"asc"(升序)"desc"(降序)

2.10 多条件查询-bool

01-查看作者是于萌且商品价格为24.90

GET 10.0.0.101:9200/oldboyedu-linux85-shopping/_search
{"query": {"bool": {"must": [{"match_phrase": {"auther": "于萌"}},{"match": {"price": 24.90}}]}}
}

02-查看作者是于萌或者是高超的商品并降序排序

GET 10.0.0.101:9200/oldboyedu-linux85-shopping/_search
{"query": {"bool": {"should": [{"match_phrase": {"auther": "于萌"}},{"match_phrase": {"auther": "高超"}}]}},"sort":{"price":{"order": "desc"}}
}

03-查看作者是于萌或者是高超且商品价格为168或者198

GET 10.0.0.101:9200/oldboyedu-linux85-shopping/_search
{"query": {"bool": {"should": [{"match_phrase": {"auther": "于萌"}},{"match_phrase": {"auther": "高超"}},{"match": {"price": 168.00}},{"match": {"price": 198.00}}],"minimum_should_match": "60%"}}
}

04-查看作者不是于萌或者是高超且商品价格为168或者198的商品

GET 10.0.0.101:9200/oldboyedu-linux85-shopping/_search
{"query": {"bool": {"must_not": [{"match_phrase": {"auther": "于萌"}},{"match_phrase": {"auther": "高超"}}],"should": [{"match": {"price": 168.00}},{"match": {"price": 198.00}}],"minimum_should_match": 1}}
}

05-综合案例

GET 10.0.0.101:9200/oldboyedu-linux85-shopping/_search
{"query": {"bool": {"must": [{"match_phrase": {"title": "零食"}}],"must_not": [{"match_phrase": {"auther": "于萌"}},{"match_phrase": {"auther": "高超"}}],"should": [{"match": {"price": 168.00}},{"match": {"price": 9.9}},{"match": {"price": 19.9}}],"minimum_should_match": 1}},"highlight": {"pre_tags": ["<span style='color:red;'>"],"post_tags": ["</span>"],"fields": {"title": {}}},"_source": ["title","price","auther"],"sort": {"price": {"order": "desc"}}
}

2.11 过滤查询(范围查询-filter)

01-查询3组成员产品价格3599到10500的商品的最便宜的3个

GET 10.0.0.101:9200/oldboyedu-linux85-shopping/_search
{"query": {"bool": {"must": [{"match": {"group": 3}}],"filter": {"range": {"price": {"gte": 3599,"lte": 10500}}}}},"sort": {"price": {"order": "asc"}},"size": 3
}

02-查询2,4,6这3个组的最贵的3个产品且不包含酒的商品

GET 10.0.0.101:9200/oldboyedu-linux85-shopping/_search
{"query":{"bool":{"must_not":[{"match":{"title": "酒"}}],"should": [{"match":{"group":2}},{"match":{"group":4}},{"match":{"group":6}}]}},"sort":{"price":{"order": "desc"}},"size":3
}

2.12 精确匹配多个值-terms

01-查询商品价格为9.9和19.8的商品

GET 10.0.0.101:9200/oldboyedu-linux85-shopping/_search
{"query": {"terms": {"price": [9.9,19.9]}}
}

2.13 多词搜索

01-多词搜索包含"小面包"关键字的所有商品

GET 10.0.0.101:9200/oldboyedu-linux85-shopping/_search
{"query": {"bool": {"must": [{"match": {"title": {"query": "小面包","operator": "and"}}}]}},"highlight": {"pre_tags": ["<h1>"],"post_tags": ["</h1>"],"fields": {"title": {}}}
}

2.14 权重案例

01-权重案例

GET 10.0.0.101:9200/oldboyedu-linux85-shopping/_search
{"query": {"bool": {"must": [{"match": {"title": {"query": "小面包","operator": "and"}}}],"should": [{"match": {"title": {"query": "下午茶","boost": 5}}},{"match": {"title": {"query": "良品铺子","boost": 2}}}]}},"highlight": {"pre_tags": ["<h1>"],"post_tags": ["</h1>"],"fields": {"title": {}}}
}

2.15 聚合查询

01-统计每个组收集的商品数量

GET 10.0.0.101:9200/oldboyedu-linux85-shopping/_search
{"aggs": {"oldboyedu_group": {"terms": {"field": "group"}}},"size": 0
}

02-统计2组最贵的商品

GET 10.0.0.101:9200/oldboyedu-linux85-shopping/_search
{"query": {"match": {"group": 2}},"aggs": {"oldboyedu_max_shopping": {"max": {"field": "price"}}},"sort":{"price":{"order":"desc"}},"size": 1
}

03-统计3组最便宜的商品

GET 10.0.0.101:9200/oldboyedu-linux85-shopping/_search
{"query": {"match": {"group": 3}},"aggs": {"oldboyedu_min_shopping": {"min": {"field": "price"}}},"sort":{"price":{"order": "asc"}},"size": 1
}

04-统计4组商品的平均价格

GET 10.0.0.101:9200/oldboyedu-linux85-shopping/_search
{"query": {"match": {"group": 4}},"aggs": {"oldboyedu_avg_shopping": {"avg": {"field": "price"}}},"size": 0
}

05-统计买下5组所有商品要多少钱

GET 10.0.0.101:9200/oldboyedu-linux85-shopping/_search
{"query": {"match": {"group":5}},"aggs": {"oldboyedu_sum_shopping": {"sum": {"field": "price"}}},"size": 0
}

kibana的KQL语句

image-20240529162611254

3、ES集群迁移实战

(1)搭建两套多实例集群

[root@elk101.oldboyedu.com ~]# curl 10.0.0.101:9200/_cat/nodes
10.0.0.102 57 88 1 0.09 0.08 0.06 cdfhilmrstw * elk102.oldboyedu.com
10.0.0.103 64 97 1 0.01 0.05 0.11 cdfhilmrstw - elk103.oldboyedu.com
10.0.0.101 71 97 0 0.00 0.01 0.05 cdfhilmrstw - elk101.oldboyedu.com[root@elk101.oldboyedu.com ~]# curl 10.0.0.101:19200/_cat/nodes
10.0.0.102 49 88 0 0.09 0.08 0.06 mdi - elk102.oldboyedu.com
10.0.0.101 51 97 0 0.00 0.01 0.05 mdi * elk101.oldboyedu.com
10.0.0.103 61 97 0 0.01 0.05 0.11 mdi - elk103.oldboyedu.com

(2)同集群迁移实战

POST http://10.0.0.103:9200/_reindex
{"source": {"index": "oldboyedu-linux85-shopping"},"dest": {"index": "oldboyedu-linux85-shopping-new"}
}

(3)不同集群迁移

3.1 elk101修改配置文件

vim /oldboyedu/softwares/es7/elasticsearch-7.17.5/config/elasticsearch.yml
...
# 添加如下一行代码,表示添加远程主机的白名单,用于数据迁移信任的主机。
reindex.remote.whitelist: "10.0.0.*:19200"推荐阅读https://www.elastic.co/guide/en/elasticsearch/reference/7.17/docs-reindex.html

3.2 elk101同步数据

data_rsync.sh /oldboyedu/softwares/es7/elasticsearch-7.17.5/config/elasticsearch.yml

3.3 所有节点重启ES7服务

systemctl restart es7

3.4 迁移数据

POST http://10.0.0.103:9200/_reindex
{"source": {"index": "oldboyedu-linux85-student","remote": {"host": "http://10.0.0.101:19200"},"query": {"bool": {"filter": {"range": {"age": {"gt": 25}}}}}},"dest": {"index": "oldboyedu-linux85-student-jiaoshi07"}
}

3.5 验证数据

GET/POST 10.0.0.101:9200/oldboyedu-linux85-student-jiaoshi07/_search

4、ES集群常用的API

4.1 ES集群健康状态API(health)

image-20240529170944804

(1)安装jq工具

yum -y install epel-release
yum -y install jq

(2)测试取数据

curl http://10.0.0.103:9200/_cluster/health 2>/dev/null| jq
curl http://10.0.0.103:9200/_cluster/health 2>/dev/null| jq .status
curl http://10.0.0.103:9200/_cluster/health 2>/dev/null| jq .active_shards_percent_as_number

相关参数说明:

cluster_name集群的名称。
status集群的健康状态,基于其主分片和副本分片的状态。ES集群有以下三种状态:green所有分片都已分配。yellow所有主分片都已分配,但一个或多个副本分片未分配。如果集群中的某个节点发生故障,则在修复该节点之前,某些数据可能不可用。red一个或多个主分片未分配,因此某些数据不可用。这可能会在集群启动期间短暂发生,因为分配了主分片。timed_out是否在参数false指定的时间段内返回响应(默认情况下30秒)。number_of_nodes集群内的节点数。number_of_data_nodes作为专用数据节点的节点数。active_primary_shards可用主分片的数量。active_shards可用主分片和副本分片的总数。relocating_shards正在重定位的分片数。initializing_shards正在初始化的分片数。unassigned_shards未分配的分片数。delayed_unassigned_shards分配因超时设置而延迟的分片数。number_of_pending_tasks尚未执行的集群级别更改的数量。number_of_in_flight_fetch未完成的提取次数。task_max_waiting_in_queue_millis自最早启动的任务等待执行以来的时间(以毫秒为单位)。active_shards_percent_as_number集群中活动分片的比率,以百分比表示。

4.2 ES集群的设置及优先级(settings)

如果您使用多种方法配置相同的设置,Elasticsearch 会按以下优先顺序应用这些设置:

(1)Transient setting(临时配置,集群重启后失效)

(2)Persistent setting(持久化配置,集群重启后依旧生效)

(3)elasticsearch.yml setting(配置文件)

(4)Default setting value(默认设置值)

(1)查询集群的所有配置信息

GET http://10.0.0.103:9200/_cluster/settings?include_defaults=true&flat_settings=true 

(2)修改集群的配置信息

PUT http://10.0.0.103:9200/_cluster/settings
{"transient": {"cluster.routing.allocation.enable": "none"}
}

相关参数说明:

"cluster.routing.allocation.enable":"all":允许所有分片类型进行分配。"primaries"仅允许分配主分片。"new_primaries"仅允许新创建索引分配主分片。"none":不允许分配任何类型的分配。参考链接:https://www.elastic.co/guide/en/elasticsearch/reference/7.17/cluster-get-settings.htmlhttps://www.elastic.co/guide/en/elasticsearch/reference/7.17/cluster-update-settings.html

4.3 集群状态API(state)

集群状态是一种内部数据结构,它跟踪每个节点所需的各种信息,包括:
(1)集群中其他节点的身份和属性
(2)集群范围的设置
(3)索引元数据,包括每个索引的映射和设置
(4)集群中每个分片副本的位置和状态

(1)查看集群的状态信息

GET http://10.0.0.103:9200/_cluster/state

(2)只查看节点信息。

GET http://10.0.0.103:9200/_cluster/state/nodes

(3)查看nodes,version,routing_table这些信息,并且查看以"oldboyedu*"开头的所有索引

http://10.0.0.103:9200/_cluster/state/nodes,version,routing_table/oldboyedu*推荐阅读:https://www.elastic.co/guide/en/elasticsearch/reference/7.17/cluster-state.html

4.4 集群统计API

Cluster Stats API 允许从集群范围的角度检索统计信息。返回基本索引指标(分片数量、存储大小、内存使用情况)和有关构成集群的当前节点的信息(数量、角色、操作系统、jvm 版本、内存使用情况、cpu 和已安装的插件)。

(1)查看统计信息

GET http://10.0.0.103:9200/_cluster/stats
推荐阅读:https://www.elastic.co/guide/en/elasticsearch/reference/7.17/cluster-stats.html

4.5 查看集群的分片分配情况(allocation)

集群分配解释API的目的是为集群中的分片分配提供解释。

对于未分配的分片,解释 API 提供了有关未分配分片的原因的解释。

对于分配的分片,解释 API 解释了为什么分片保留在其当前节点上并且没有移动或重新平衡到另一个节点。

当您尝试诊断分片未分配的原因或分片继续保留在其当前节点上的原因时,此 API 可能非常有用,而您可能会对此有所期待。

(1)分析teacher索引的0号分片未分配的原因。

GET http://10.0.0.101:9200/_cluster/allocation/explain
{"index": "teacher","shard": 0,"primary": true
}推荐阅读:https://www.elastic.co/guide/en/elasticsearch/reference/7.17/cluster-allocation-explain.html

4.6 集群分片重路由API(reroute)

reroute 命令允许手动更改集群中各个分片的分配。

例如,可以将分片从一个节点显式移动到另一个节点,可以取消分配,并且可以将未分配的分片显式分配给特定节点。

(1)将"oldboyedu-linux85-student-jiaoshi07"索引的0号分片从elk102节点移动到elk101节点。

POST http://10.0.0.101:9200/_cluster/reroute
{"commands": [{"move": {"index": "oldboyedu-linux85-student-jiaoshi07","shard": 0,"from_node": "elk102.oldboyedu.com","to_node": "elk101.oldboyedu.com"}}]
}

(2)取消副本分片的分配,其副本会重新初始化分配。

POST http://10.0.0.101:9200/_cluster/reroute
{"commands": [{"cancel": {"index": "oldboyedu-linux85-student-jiaoshi07","shard": 0,"node": "elk103.oldboyedu.com"}}]
}推荐阅读:https://www.elastic.co/guide/en/elasticsearch/reference/7.17/cluster-reroute.html

作业:
(1)完成课堂所有练习及思维导图;
(2)调研ES6迁移数据到ES7的解决方案;

扩展作业:
使用granfana展示ES数据。

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

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

相关文章

tusimple车道线检测 标注自己的数据集

一、打开labelme工具进行数据标注 二、数据格式转换 2.1 标签转换 运行Anaconda Prompt&#xff0c;进入json标签文件所在目录&#xff0c;逐个转换&#xff0c;分布运行 labelme_json_to_dataset 0000.json labelme_json_to_dataset 0001.json labelme_json_to_dataset 000…

redis查询慢,你们是如何查询优化?(运维篇3)

1、查看是否写入了bigkey 如果你查询慢日志发现&#xff0c;并不是复杂度过高的命令导致的&#xff0c;而都是 SET / DEL 这种简单命令出现在慢日志中&#xff0c;那么你就要怀疑你的实例否写入了 bigkey。 Redis 在写入数据时&#xff0c;需要为新的数据分配内存&#xff0c;相…

2024年公共文化与社会服务国际会议(ICPCSS 2024)

2024年公共文化与社会服务国际会议 2024 International Conference on Public Culture and Social Services 【1】会议简介 2024年公共文化与社会服务国际会议是一个集学术性、实践性和国际性于一体的盛会。我们期待与您共同探讨公共文化与社会服务的未来发展方向&#xff0c;为…

【linux】服务器设置所有用户创建虚拟环境到默认路径

【linux】服务器设置所有用户创建虚拟环境到默认路径 【创作不易&#xff0c;点点赞关注收藏】&#x1f600; 需要安装anaconda3的小伙伴可以看一下我前面的博文linux安装anaconda3 一、情况说明 我的anaconda3安装在"/public/apps/anaconda3/“&#xff0c;我希望所有…

C#实现最短路径算法

创建点集 double r 200 * 500;double width 1920;double height 1080;int col (int)(r / width);int row (int)(r / height);List<(double, double)> list1 new List<(double, double)>();for (int i 0; i < row; i){var y i * height;if (y < r){va…

好莱坞级别AI视频工具Odyssey亮相!AI世界动态回顾

好莱坞级别的视觉AI&#xff1a;Odyssey 首先&#xff0c;我们要提到的就是Odyssey——一款新晋AI视频工具&#xff0c;它以其好莱坞级别的视觉AI能力引起了广泛关注。奥德赛展示的一些片段令人印象深刻&#xff0c;包括精美的无人机镜头、风景画面以及专业级的B-roll素材。虽…

Snap Video:用于文本到视频合成的扩展时空变换器

图像生成模型的质量和多功能性的显著提升&#xff0c;研究界开始将其应用于视频生成领域。但是视频内容高度冗余&#xff0c;直接将图像模型技术应用于视频生成可能会降低运动的保真度和视觉质量&#xff0c;并影响可扩展性。来自 Snap 的研究团队及其合作者提出了 "Snap …

运算放大器(2)

&#xff08;1&#xff09;反向放大器 Vout(-R2/R1)*Vi 图一运放的同向端接地0V&#xff0c;反向端和同向端虚短&#xff0c;所以也是0V 反向输入端输入电阻很高&#xff0c;虚断&#xff0c;几乎没有电流注入和流出&#xff0c;那么R1和R2相当于是串联的&#xff0c;流过一个…

Nacos服务公网环境登陆报密码错误问题排查

作者&#xff1a;小丫 一、问题现象 nacos服务内网可以正常登录&#xff0c;如下&#xff1a; 走公网代理出来之后&#xff0c;无法正常登录&#xff0c;报错"用户名密码错误" 二、排查步骤 1、链路分析 首先确认公网代理的链路&#xff1a; 域名—>haprox…

Epson打印机日常问题和解决办法

1、打印过程中缺纸&#xff0c;重新放入纸张之后&#xff0c;打印机出错。 打开“控制面板”&#xff0c;进入“设备与打印机”&#xff1a; 选择你正在使用的打印机&#xff0c;最下面可以看到打印机状态&#xff08;我这边用完脱机了&#xff0c;所以显示脱机&#xff09;&a…

【Python实战因果推断】34_双重差分5

目录 Identification Assumptions Parallel Trends No Anticipation Assumption and SUTVA Identification Assumptions 您现在可能已经知道&#xff0c;因果推断是统计工具和假设之间的不断互动。在本文中&#xff0c;我选择从统计工具入手&#xff0c;展示 DID 如何利用单…

数据结构之单链表(赋源码)

数据结构之单链表 线性表 线性表的顺序存储结构&#xff0c;有着较大的缺陷 插入和删除操作需要移动大量元素。会耗费很多时间增容需要申请空间&#xff0c;拷贝数据&#xff0c;释放旧空间。会有不小的消耗即使是使用合理的增容策略&#xff0c;实际上还会浪费许多用不上的…

led灯什么牌子的质量好?口碑前五的led灯推荐

每每到开学季&#xff0c;学生们重返校园&#xff0c;各个家长和学生们也迎接新学期的前期准备工作&#xff0c;当然&#xff0c;用眼健康的考量也列位其中&#xff0c;国内的学习压力大一直是众所周知的&#xff0c;学生除了在学校长时间用眼外&#xff0c;短暂的户外休息时间…

为什么有些3d模型不能编辑?---模大狮模型网

在展览3D模型设计行业中&#xff0c;设计师们面临一个重要的技术挑战&#xff1a;为什么有些3D模型在某些情况下变得难以编辑?这一问题不仅关乎技术操作的复杂性&#xff0c;更深层次地影响着设计工作的效率和成果质量。本文将探讨这一问题的根本原因及其在实际工作中的具体表…

JSONObject和Map<String, Object>的转换

一、前言 Java开发中出参返回和入参传入更灵活的方法是使用Map<String, Object>入参或出参&#xff0c;或者使用JSONObject。 1、好处&#xff0c;参数可变&#xff0c;对接口扩展性很友好。 public ResponseData<WXModelDTO> getUserInfo(RequestBody Map<…

浏览器输入URL后的过程

总体流程&#xff1a; 1. 用户输入URL并按下回车 当用户在浏览器的地址栏中输入一个 URL 并按下回车&#xff0c;浏览器开始解析用户输入并判断这是一个合法的 URL。 2. DNS 解析 缓存查找&#xff1a;浏览器首先查看本地 DNS 缓存中是否有对应的 IP&#xff0c;如果有则直接…

九盾安防丨如何判断叉车是否超速?

在现代物流和生产流程中&#xff0c;叉车是提高效率和降低成本的关键工具。然而&#xff0c;叉车的高速行驶也带来了安全隐患&#xff0c;这就要求我们对其进行严格的安全管理。九盾安防&#xff0c;作为业界领先的安防专家&#xff0c;今天就为大家揭晓如何判断叉车是否超速&a…

Java高频面试基础知识点整理7

干货分享&#xff0c;感谢您的阅读&#xff01;背景​​​​​​高频面试题基本总结回顾&#xff08;含笔试高频算法整理&#xff09; 最全文章见&#xff1a;Java高频面试基础知识点整理 &#xff08;一&#xff09;Java基础高频知识考点 针对人员&#xff1a; 1.全部人员都…

SCI一区级 | Matlab实现NGO-CNN-LSTM-Mutilhead-Attention多变量时间序列预测

SCI一区级 | Matlab实现NGO-CNN-LSTM-Mutilhead-Attention多变量时间序列预测 目录 SCI一区级 | Matlab实现NGO-CNN-LSTM-Mutilhead-Attention多变量时间序列预测预测效果基本介绍程序设计参考资料 预测效果 基本介绍 1.Matlab实现NGO-CNN-LSTM-Mutilhead-Attention北方苍鹰算…

【机器学习】Exam4

实现线性不可分logistic逻辑回归 我们目前所学的都是线性回归&#xff0c;例如 y w 1 x 1 w 2 x 2 b y w_1x_1w_2x_2b yw1​x1​w2​x2​b 用肉眼来看数据集的话不难发现&#xff0c;线性回归没有用了&#xff0c;那么根据课程所学&#xff0c;我们是不是可以增加 x 3 x…