ElasticSearch01-概述

news2024/12/15 20:00:07

零、文章目录

ElasticSearch01-概述

1、Elastic Stack

(1)简介
  • 官网地址:https://www.elastic.co/cn/
  • ELK是一个免费开源的日志分析架构技术栈总称,包含三大基础组件,分别是Elasticsearch、Logstash、Kibana。但实际上ELK不仅仅适用于日志分析,它还可以支持其它任何数据搜索、分析和收集的场景,日志分析和收集只是更具有代表性。并非唯一性。
  • ELK架构如下:

  • 随着ELK的发展,又有新成员Beats、elastic cloud的加入,所以就形成了Elastic Stack。所以说,ELK是旧的称呼,Elastic Stack是新的名字。

(2)特点
  • 全文搜索:Elasticsearch提供强大的全文搜索能力。
  • 数据处理:Logstash用于数据收集、处理和转发。
  • 数据可视化:Kibana提供数据可视化和仪表板功能。
  • 接口简单:采用json形式RESTFUL API接受数据并响应,无关语言。
  • 实时分析:支持实时数据处理和分析。
  • 可扩展性:易于在分布式环境中水平扩展。
  • 灵活性:高度可定制,适应不同数据处理需求。
  • 开源:拥有活跃社区和丰富的插件生态。
  • 数据集成:轻松集成多种数据源。
  • 安全性:提供用户认证、授权和数据加密。
  • 成本效益:作为开源解决方案,降低成本。
  • 易用性:Kibana界面友好,简化数据探索。
  • 监控与警报:支持设置监控规则和警报。
(3)组件介绍
  • Elasticsearch:
    • 开源分布式搜索引擎,提供搜集、分析、存储数据三大功能。
    • 建立在Lucene之上,擅长全文搜索,是一个近乎实时的搜索平台。
  • Logstash:
    • 服务器端数据处理管道,从多个来源摄取数据,对其进行转换,然后将其发送到Elasticsearch存储。
    • 支持动态的数据收集、过滤、分析和丰富,拥有近200种插件。
  • Kibana:
    • 开源数据可视化插件,提供查找、查看和交互存储在Elasticsearch索引中的数据的方式。
    • 用于高级数据分析和可视化数据。
  • Beats:
    • Elastic Stack中负责数据采集的轻量级组件,包括Filebeat、Metricbeat、Packetbeat等。
    • 从各种源头采集数据,并将数据发送到Elasticsearch或Logstash进行后续处理和分析。
    • 例如,Filebeat用于收集和转发日志文件,Metricbeat用于收集系统和服务的运行指标。
  • Elastic Cloud:
    • 提供在AWS、Google Cloud和Azure上部署托管型Elasticsearch和Kibana的能力。
    • 作为Elasticsearch的开发公司,Elastic为云端的Elastic集群提供多项功能和贴心支持。

2、搜索原理

(1)搜索是什么
  • 搜索:是一种信息检索技术,它允许用户从大量的数据中查找和获取特定的信息。
  • 在计算机科学和信息技术领域,搜索通常涉及以下几个方面:
    • 全文搜索:在文本中查找特定的词汇或短语,通常用于文档、书籍、网页等。
    • 数据库搜索:在数据库中查询特定的数据记录。
    • 网络搜索:使用搜索引擎在互联网上查找信息,如使用Google、Bing等搜索引擎。
    • 文件系统搜索:在计算机的文件系统中查找文件或文件夹。
    • 元数据搜索:根据文件、文档或其他数据对象的属性(如作者、日期、标签等)进行搜索。
    • 语义搜索:理解用户查询的意图,并返回最相关的结果,而不仅仅是关键词匹配。
    • 垂直搜索:专注于特定类型的数据或领域的搜索,如房地产搜索、旅游搜索等。
    • 本地搜索:在用户的设备上进行的搜索,不依赖于网络。
(2)数据库做搜索局限性
  • 扩展性限制:在处理大规模数据时,传统数据库的扩展能力有限,尤其是横向扩展。
  • 非结构化数据处理:不擅长处理文本、图像等非结构化数据。
  • 灵活性不足:数据库结构固定,难以适应数据模型的快速变化。
  • 全表扫描问题:在缺乏有效索引的情况下,可能需要全表扫描,影响性能。
  • 性能优化复杂:需要复杂的索引和查询优化来提升性能。
  • 大数据查询效率:在大数据量下,查询效率可能下降,影响用户体验。
  • 举例如下:如下数据,查询“中国足球”,数据库就非常难实现数据匹配,更何况更加复杂的文本。
文档内容
Doc1中国的足球队
Doc2中国男子足球队
Doc3中国男子划水队
Doc4中国女子划水队
(3)全文检索
  • 全文检索:一种信息检索技术,它允许用户搜索文档中的全文内容,而不仅仅是元数据或数据库字段。
  • 以下是全文检索的一些关键特点:
    • 关键词搜索:用户可以输入一个或多个关键词,系统会返回包含这些关键词的文档。
    • 索引创建:在全文检索系统中,文档内容会被处理并存储在一个索引中,这个索引允许快速检索。
    • 倒排索引:全文检索系统通常使用倒排索引来存储文档中每个词的位置信息,从而加快搜索速度。
    • 相关性排序:搜索结果会根据相关性进行排序,相关性高的文档排在前面。
    • 模糊匹配:支持模糊查询,即使用户输入的关键词有拼写错误或不完整,系统也能返回相关结果。
    • 多语言支持:全文检索系统能够处理多种语言的文档,并且可以针对不同语言进行优化。
    • 复杂查询:支持布尔查询(AND, OR, NOT)、短语搜索、通配符搜索等复杂查询。
    • 性能优化:全文检索系统会通过各种优化技术,如缓存、分布式处理等,来提高搜索性能。
    • 可扩展性:能够处理从小型文档集合到大规模数据集的搜索需求。
    • 用户界面:提供用户友好的搜索界面,使用户能够轻松地输入查询并浏览结果。
    • 安全性和权限:可以集成安全机制,控制对敏感文档的访问。
    • 集成性:全文检索系统可以集成到现有的应用程序和工作流程中,提供无缝的搜索体验。
(4)倒排索引及其原理
  • 定义
    • 倒排索引(Inverted Index)是全文检索中最常用的数据结构之一,它极大地提高了搜索效率,尤其是在处理大量文本数据时。
    • 倒排索引是一种索引方法,它将文档集合中的所有文档中出现的每个词作为索引Key记录下来,并为每个词提供一份包含该词的文档列表。当用户查询时,可以直接查找该词的索引,快速定位到包含该词的所有文档。
  • 工作原理
    • 假如现在有三份数据文档,内容分别是:
文档内容
Doc1Java is the best programming language
Doc2PHP is the best programming language
Doc3Javascript is the best programming language
- 分词:首先,对文档集合中的每个文档进行分词处理,将文档分解成独立的词项。
文档内容分词
Doc1Java is the best programming languageJava,is,the,best,programming,language
Doc2PHP is the best programming languagePHP,is,the,best,programming,language
Doc3Javascript is the best programming languageJavascript,is,the,best,programming,language
- 构建词典:创建一个词典(Term Dictionary),记录所有不同的词项,并为每个词项分配一个唯一的标识符(如词ID)。
- 构建倒排列表:对于词典中的每个词项,创建一个倒排列表(Posting List),记录包含该词项的所有文档的文档ID。倒排列表还可能包含词项在文档中出现的位置信息(位置索引),以及词项在文档中出现的次数(词频)。
IDterm文档列表
1isDoc1,Doc2,Doc3
2theDoc1,Doc2,Doc3
3bestDoc1,Doc2,Doc3
4programmingDoc1,Doc2,Doc3
5languageDoc1,Doc2,Doc3
6JavaDoc1
7PHPDoc2
8JavascriptDoc3
- 存储索引:将词典和倒排列表存储在数据库或文件系统中,以便快速检索。
- 查询处理:当用户提交查询时,会将查询的词进行分词处理,然后再将分词结果分别查找词典中与查询词项对应的倒排列表,快速检索出包含这些词项的文档列表。
- 结果合并:如果查询包含多个词项,系统需要合并这些词项的倒排列表,找出同时包含所有查询词项的文档。这个过程可能涉及到布尔逻辑(AND, OR, NOT)等操作。
- 相关性评分:根据词项在文档中的出现频率、位置信息、文档的长度等因素,计算文档与查询的相关性得分,并按照得分对结果进行排序。

3、ElasticSearch

(1)概述
  • 官网地址:https://www.elastic.co/cn/products/elasticsearch
  • Elasticsearch是一个基于Lucene的搜索引擎。对Lucene进行了良好的封装,简化开发,并提供了很多高级功能。
(2)关键特性
  • 分布式:Elasticsearch天生就是分布式的,这意味着它可以很容易地扩展到数以百计的服务器,并且可以处理PB级别的数据。
  • 高可用性:Elasticsearch设计为高可用的,它通过将数据复制到多个节点来实现这一点,这样即使某个节点失败,数据也不会丢失。
  • 实时搜索:Elasticsearch提供了快速的搜索能力,可以实时地对数据进行索引和搜索。
  • 多租户:Elasticsearch支持多租户架构,允许多个用户或应用在同一个集群上运行而不会相互干扰。
  • JSON文档:Elasticsearch使用JSON格式存储数据,这使得它易于与其他系统和编程语言集成。
  • RESTful接口:Elasticsearch提供了一个RESTful API,使得它可以通过HTTP请求进行操作。
  • 分析和聚合:Elasticsearch提供了强大的分析和聚合功能,可以对数据进行复杂的查询和分析。
  • 可扩展性:Elasticsearch可以很容易地通过增加更多的节点来扩展,以处理更多的数据和查询负载。
  • 容错性:Elasticsearch具有自动故障转移和恢复的能力,可以在节点失败时自动重新分配数据和查询负载。
(3)发展历史
  • 起源:Elasticsearch最初由Shay Banon在2010年创建,并在同年发布了第一个版本。Shay Banon创建Elasticsearch的初衷是为了解决传统关系型数据库无法满足的大规模数据搜索和分析需求。他希望构建一个分布式的、实时的搜索和分析引擎,基于Apache Lucene搜索引擎库,并在此基础上构建了更多的功能和特性,如分布式架构、实时索引、多数据类型支持、聚合分析等。
  • 公司成立:2012年,Elasticsearch N.V.公司成立,专注于开发和支持Elasticsearch相关的开源项目。公司的成立标志着Elasticsearch项目的商业化和持续发展。
  • 社区壮大:从2013年开始,Elasticsearch社区逐渐壮大,吸引了越来越多的开发者和用户参与其中。Elasticsearch社区不断推出新版本,发布了许多重要的功能和改进,如实时搜索、聚合分析、地理空间搜索等。
  • 被收购与上市:2018年,Elasticsearch N.V.公司更名为Elastic,并于同年上市。Elastic公司不断壮大,成为了搜索和分析领域的领军企业之一。
  • 版本发布:Elasticsearch经历了多个版本的迭代,从1.x系列到最新的8.x系列,每个版本都带来了新的特性和性能改进。例如,1.0.0版本引入了分布式搜索和实时索引的核心功能,而7.0版本开始增加对向量字段的支持,标志着Elasticsearch正式进入向量检索领域。
  • 开源与成功:Elasticsearch的成功关键因素之一是其开源特性,以及除了搜索之外的不同用例,如日志管理、安全和分析。
  • 向量检索发展:随着机器学习和人工智能的兴起,Elasticsearch在向量检索方面也有所发展。从5.x版本开始,社区尝试通过插件和基本的数学运算实现简单的向量检索功能。到了7.0版本,Elasticsearch正式开始增加对向量字段的支持,例如通过dense_vector类型。
(4)应用案例
  • Netflix:Netflix依赖Elasticsearch来监控客户服务操作、安全日志和消息系统。其可扩展性和灵活性导致了广泛的应用,支持公司内部的关键运营。
  • eBay:eBay在各种文本搜索和分析用例中使用Elasticsearch。他们定制的“Elasticsearch-as-a-Service”平台简化了集群配置,使eBay能够无缝处理大量数据。
  • Walmart:Walmart利用Elastic Stack获得客户购买模式的可操作洞察,监控商店性能指标,并实时分析销售数据。其强大的安全功能增强了监控能力,确保为客户提供安全和优化的购物体验。
  • Sony:Sony公司使用Elasticsearch作为信息搜索引擎。
  • Mozilla:Mozilla公司使用Elasticsearch进行单元或功能测试,测试结果以JSON的方式索引到Elasticsearch中,方便开发人员查找bug。
  • SoundCloud:SoundCloud使用Elasticsearch为1.8亿用户提供即时精准的音乐搜索服务。
  • StumbleUpon:StumbleUpon使用Elasticsearch每天为社区提供百万次的推荐服务。
  • Infochimps:Infochimps已经索引了25亿文档,总共占用4TB的空间。

4、常见搜索引擎对比

(1)Lucene
  • Lucene,直白地说,它就是一个jar包,封装好了各种建立倒排索引、匹配索引进行搜索的各种算法。我们可以引入Lucene,基于它的API进行开发。
  • Lucene是一个高性能、纯Java的全文检索引擎,它免费且开源,适用于任何需要全文检索的应用,尤其是跨平台的应用。
  • 起源:Lucene最初由Doug Cutting于1999年创建,最初是为了创建一个基于全文搜索的邮件存档系统而开始开发Lucene。
  • 开源与社区发展:2000年3月,Lucene在SourceForge上开源并提供下载。2001年9月,Lucene作为高质量的Java开源软件产品加入Apache软件基金会的Jakarta家族中。随着每个版本的发布,这个项目得到明显的增强,也吸引了更多的用户和开发人员。
  • 版本发展:Lucene经历了多个版本的迭代,从最初的0.01版本(2000年3月)到后来的1.0版本(2000年10月),再到1.4版本(2004年7月)等。2005年,Lucene升级成为Apache顶级项目。
  • 生态系统形成:随着Lucene的发展,其生态系统也逐渐形成。相关项目如Solr和Elasticsearch等基于Lucene的搜索引擎系统相继出现,为Lucene的应用提供了更多的功能和扩展性。
  • 重要地位:Lucene在全文搜索领域占据了重要地位,它不仅是一个全文检索引擎,也是一个信息检索(IR)库,能够为应用程序添加索引和搜索能力。
  • 社区认可:Lucene以其开放源代码的特性、优异的索引结构、良好的系统架构获得了越来越多的应用,包括Apache软件基金会的网站、IBM的开源软件Eclipse等都采用了Lucene作为全文检索的引擎。
  • Lucene的发展历史充满了合作和开源社区的力量,得到了全球开发者和用户的认可和支持,成为了全文搜索引擎库中的一个非常成熟和强大的选择。
(2)Solr
  • 起源与历史:
    • Solr最初由Yonik Seely于2004年创建,目的是为了在CNET Networks的公司网站上添加搜索功能。
    • 2006年1月,Solr成为Apache软件基金会下的一个开源项目。
    • 2016年,Solr发布了新版本6.0,支持并行SQL查询的执行。
    • 目前最新的版本是8.6.0。
  • 功能与特性:
    • Solr提供了先进的全文搜索功能。
    • 它支持基于标准的开放接口,通过XML、JSON和HTTP查询和获取结果。
    • Solr高度可扩展和容错,能够有效地复制到另一个Solr搜索服务器。
    • 可以通过HTML页面管理,使用XML配置达到灵活性和适配性。
    • 拥有灵活的插件体系,新功能能够以插件的形式方便地添加到Solr服务器上。
    • 强大的数据导入功能,数据库和其他结构化数据源都可以导入、映射和转化。
  • 应用场景:
    • Solr广泛应用于电商平台、日志分析、内容管理系统等领域。
    • 在电商平台中,Solr的全文检索和分类统计功能使得商品搜索的实现变得轻松。
    • 在日志分析场景中,Solr可以快速对日志进行索引和检索,帮助运维人员高效地排查故障。
    • 在内容管理系统(CMS)中,Solr可以轻松实现内容搜索功能,帮助用户快速查找文章、图片等资源。
  • 与Lucene的区别:
    • Lucene是一个全文检索工具包,而Solr是一个基于Lucene的全文搜索服务,提供了比Lucene更为丰富的查询语言,同时实现了可配置、可扩展,并对索引、搜索性能进行了优化。
    • Solr可以独立运行,不提供构建UI的功能,但提供了一个管理界面,通过管理界面可以查询Solr的配置和运行情况。
(3)Solr VS Elasticsearch
  • 安装与配置:
    • Elasticsearch更易于安装和配置,学习成本更低。
    • Solr的安装和配置比Elasticsearch要复杂一些。
  • 数据源与索引:
    • Solr接受来自不同来源的数据,包括XML文件,CSV文件和从数据库中的表提取的数据以及常见的文件格式(如Microsoft Word和PDF)。
    • Elasticsearch也支持其他来源的数据,例如ActiveMQ,AWS SQS,DynamoDB(Amazon NoSQL),FileSystem,Git,JDBC,JMS,Kafka,LDAP,MongoDB,neo4j,RabbitMQ,Redis,Solr和Twitter等。
  • 搜索与分析:
    • Solr专注于文本搜索。
    • Elasticsearch常用于查询、过滤和分组分析统计,Elasticsearch背后的团队也努力让这些查询更为高效。
  • 索引间join操作:
    • Solr中,索引间进行join必须是单个分片和其他节点上的副本集进行关联来搜索文档间关系(例如SQL连接)。
    • Elasticsearch提供更高效的has_children和top_children查询来检索这样的相关文档。
  • 可扩展性与分布式:
    • Solr利用Zookeeper进行分布式管理,而Elasticsearch自身带有分布式协调管理功能。
    • Elasticsearch可以在笔记本电脑上运行,也可以在承载了PB级数据的成百上千台服务器上运行,具有很好的水平扩展性。
  • 性能:
    • 在处理实时搜索应用时,Elasticsearch的效率明显高于Solr。
    • Solr在传统的搜索应用中表现好于Elasticsearch。
  • 社区支持:
    • Solr有一个更大、更成熟的用户、开发和贡献者社区。
    • Elasticsearch也有一个活跃的社区,提供用户支持。
  • 功能与插件:
    • Solr官方提供的功能更多。
    • Elasticsearch本身更注重于核心功能,高级功能多有第三方插件提供。
  • 多租户支持:
    • Elasticsearch处理多租户(multitenancy)不需要特殊配置。
    • Solr则需要更多的高级设置。
  • 备份与恢复:
    • Elasticsearch采用Gateway的概念,使得完备份更加简单。

5、Elasticsearch 核心概念

(1)索引(Index)
  • 定义:索引是一系列文档的集合,类似于关系型数据库中的数据库。每个索引都有一个唯一的名称,并且这个名称在集群中是唯一的。
  • 作用:索引用于存储和检索数据。在Elasticsearch中,索引可以被细分为多个分片(shard),每个分片都是一个独立的Lucene索引,可以托管在集群中的任何节点上。
(2)文档(Document)
  • 定义:文档是Elasticsearch中的基本数据单元,通常以JSON格式表示。每个文档都有一个唯一的标识符(_id),并且属于一个特定的索引和类型(type)。
  • 作用:文档是存储在索引中的数据的基本单位。每个文档都可以包含多个字段,这些字段可以是不同类型的数据(如字符串、数字、日期等)。
(3)类型(Type)
  • 定义:类型是索引中的一个逻辑分区,用于区分不同种类的文档。在Elasticsearch 6.0之前,一个索引可以包含多个类型,但从6.0开始,Elasticsearch开始淡化类型的概念,推荐一个索引只包含一个类型,并计划在8.x版本中完全废弃类型。
  • 作用:类型用于逻辑上区分同一索引中的不同种类的文档。例如,在一个名为“articles”的索引中,可以有一个类型为“blog_post”的文档,表示博客文章。
(4)分片(Shard)
  • 定义:分片是索引的一个子集,每个分片都是一个独立的Lucene索引。一个索引可以包含多个分片,这些分片可以分布在不同的节点上。
  • 作用:分片用于水平扩展Elasticsearch的存储和处理能力。通过将索引分成多个分片,可以将数据分布到多个节点上,从而提高系统的可扩展性和容错能力。
(5)副本(Replica)
  • 定义:副本是对主分片(primary shard)的一个备份。每个主分片可以有一个或多个副本。
  • 作用:副本用于提高系统的可用性和查询性能。通过在不同的节点上创建副本,可以在某个节点发生故障时,确保数据的可用性。同时,查询可以在主分片和副本上并行执行,从而提高查询性能。
(6)集群(Cluster)
  • 定义:集群是由一个或多个节点组成的集合。集群中的节点共同工作,提供数据的存储和检索服务。
  • 作用:集群用于实现数据的分布式存储和处理。通过将数据分布到多个节点上,可以提高系统的可扩展性和容错能力。
(7)节点(Node)
  • 定义:节点是Elasticsearch的一个运行实例。每个节点都可以参与到集群中,提供数据的存储和检索服务。
  • 作用:节点是Elasticsearch的基本运行单元。通过将多个节点组成一个集群,可以实现数据的分布式存储和处理。
(8)映射(Mapping)
  • 定义:映射定义了文档的结构和字段的类型。每个索引都有一个映射,用于描述该索引中的文档的结构和字段的类型。
  • 作用:映射用于指导Elasticsearch如何存储和检索文档中的数据。通过定义文档的结构和字段的类型,可以确保数据的一致性和查询的效率。
(9)Elasticsearch vs 数据库
数据库概念ES概念
数据库Database索引Index
表Table类型Type,9.0版本后删除,现在默认都是_doc
数据行Row文档Document
数据列Column字段Field
约束 Schema映射Mapping

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

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

相关文章

12.2【JAVA EXP4]next.js的各种问题,DEBUG,前端补强,前后端交互,springSecurity ,java 配置,h2数据库

在服务器组件中使用了 useState 这样的 React Hook。useState 只能在客户端组件中使用,而不能在服务器组件中使用。Next.js 的新架构(App Router)中,默认情况下,页面和布局组件是服务器组件,因此不能直接使…

MySQL相关文件

配置文件 — — — — — — /etc/my.cnf datadir/var/lib/mysql //数据目录 socket/var/lib/mysql/mysql.sock //定义套接字文件存储位置,套接字文件(IP:port),用于接收客户端连…

数字产业化和产业数字化到底是什么?

“数字产业化”和“产业数字化”在很多官方文件和领导人讲话中都是成对出现的,这两个术语看起来非常相似,但它们作为数字经济的两个重要组成部分,既有联系又有区别。 在谈数字产业化和产业数字化之前,我这里需要先给大家介绍一个概…

3D一览通在线协同设计,助力汽车钣金件设计与制造数字化升级

汽车行业已迎来智能化的汹涌浪潮,在此背景下,零部件制造商唯有积极应对,以智能制造为核心驱动力,方能跟上行业发展步调,在激烈的市场竞争中抢占先机。作为整车制造不可或缺的核心组件之一,汽车钣金件亦需紧…

基于Sharding-jdbc实现水平分库、垂直分库、读写分离

一、实现水平分库 需求说明 水平分库是把同一个表的数据按一定规则拆到不同的数据库中,每个库可以放在不同的服务器上。 接下来咱们继续对快速入门中的例子进行完善。 实现步骤 将原有order_db库拆分为order_db_1、order_db_2 CREATE DATABASE order_db_1 CHAR…

MATLAB中Simulink的信号线

Simulink以模块为最小单位,通过信号线互相连接,用户可通过GUI调配每个模块的参数,且仿真的结果能够以数值和图像等形象化方式具现出来。信号线可以传递一维数据、多维数据、向量数据或矩阵数据,甚至Bus型数据。Simulink使用不同的线形表示传递不同数据类型的信号线,…

【WRF安装】WRF编译错误总结1:HDF5库包安装

目录 1 HDF5库包安装有误:HDF5 not set in environment. Will configure WRF for use without.HDF5的重新编译 错误原因1:提示 overflow 错误1. 检查系统是否缺少依赖库或工具2. 检查和更新编译器版本3. 检查 ./configure 报错信息4. 检查系统环境变量5.…

Flutter 内嵌 unity3d for android

前言: 最近刚整完 unity3d hybridCLR 更新代码和资源,我们 趁热打铁 将 Unity3D 嵌入 Flutter 应用中。实现在 Flutter 使用 Unity3D, 可以做 小游戏 大游戏; 之前都是 内嵌 Webview 来实现的。虽然 CocosCreator 做出来的效果也不错&#xf…

鸿蒙开发:一个轻盈的上拉下拉刷新组件

前言 老早之前开源了一个刷新组件,提供了很多常见的功能,也封装了List,Grid,WaterFlow,虽然功能多,但也冗余比较多,随着时间的前去,暴露的问题就慢慢增多,虽然我也提供了…

Oracle plsqldev1106 安装及TNS配置

Oracle plsqldev1106 安装及TNS配置 下载好安装包,直接双击安装 点击 I Agree 默认是C盘的,我改了D盘,根据自己实际情况修改 这里用默认的for current user 也可以,我选了for all user 点Finish,等待安装完成即可 …

【卷积神经网络】AlexNet实践

构建模型 模版搭建 # 定义一个AlexNet模型类def __init__(self):# 调用父类的构造函数(如果继承自nn.Module的话)super(AlexNet, self).__init__()# ReLU激活函数self.ReLU nn.ReLU()# 卷积层1:输入1个通道(灰度图)&a…

Linux驱动开发(13):输入子系统–按键输入实验

计算机的输入设备繁多,有按键、鼠标、键盘、触摸屏、游戏手柄等等,Linux内核为了能够将所有的输入设备进行统一的管理, 设计了输入子系统。为上层应用提供了统一的抽象层,各个输入设备的驱动程序只需上报产生的输入事件即可。 下…

计算机毕设-基于springboot的某学院兼职平台的设计与实现(附源码+lw+ppt+开题报告)

博主介绍:✌多个项目实战经验、多个大型网购商城开发经验、在某机构指导学员上千名、专注于本行业领域✌ 技术范围:Java实战项目、Python实战项目、微信小程序/安卓实战项目、爬虫大数据实战项目、Nodejs实战项目、PHP实战项目、.NET实战项目、Golang实战…

Unity3D仿星露谷物语开发3之动画系统初探

1、目标 我们希望使用已有的资源建一个动画demo,以此熟悉基于已有Animator/Animation资源的使用方法。 以Tree的动画系统为例,资源位于: 2、创建流程 (1)创建tree空对象 上面两个都是空对象。 (2&#…

怎么禁用 vscode 中点击 go 包名时自动打开浏览器跳转到 pkg.go.dev

本文引用怎么禁用 vscode 中点击 go 包名时自动打开浏览器跳转到 pkg.go.dev 在 vscode 设置项中配置 gopls 的 ui.navigation.importShortcut 为 Definition 即可。 "gopls": {"ui.navigation.importShortcut": "Definition" }ui.navigation.i…

Java:183 基于SSM的高校食堂系统

项目介绍 基于SSM的食堂点餐系统 角色:管理员、用户、食堂 前台用户可以实现商品浏览,加入购物车,加入收藏,预定,选座,个人信息管理,收货信息管理,收藏管理,评论功能,…

[COLM 2024] V-STaR: Training Verifiers for Self-Taught Reasoners

本文是对 STaR 的改进方法,COLM 是 Conference On Language Models,大模型领域新出的会议,在国际上很知名,不过目前还没有被列入 ccf list(新会议一般不会列入);作者来自高校、微软研究院和 Goo…

端点鉴别、安全电子邮件、TLS

文章目录 端点鉴别鉴别协议ap 1.0——发送者直接发送一个报文表明身份鉴别协议ap 2.0——ap1.0 的基础上,接收者对报文的来源IP地址进行鉴别鉴别协议ap 3.0——使用秘密口令,口令为鉴别者和被鉴别者之间共享的秘密鉴别协议ap 3.1——对秘密口令进行加密&…

电脑文件夹打不开了,能打开但是会闪退,提示“找不到iUtils.dll”是什么原因?

电脑运行时常见问题解析:文件夹打不开、闪退及“找不到iUtils.dll”报错 在使用电脑的过程中,我们可能会遇到文件夹打不开、软件闪退或系统报错等问题,特别是提示“找不到iUtils.dll”的报错,更是让人困惑不已。今天我将为大家详…

MATLAB图卷积神经网络GCN处理分子数据集节点分类研究

全文链接:https://tecdat.cn/?p38570 本文主要探讨了如何利用图卷积网络(GCN)对图中的节点进行分类。介绍了相关的数据处理、模型构建、训练及测试等环节,通过对分子数据集的操作实践,展示了完整的节点分类流程&#…