【Elasticsearch入门到落地】4、Elasticsearch的安装
接上篇《3、es与mysql的概念对比》
上一篇我们学习了Elasticsearch与Mysql的概念与区别。本篇我们来进行Elasticsearch的环境准备及软件安装。
一、环境准备
如果我们没有自己的Linux服务器,且现在正在使用的是Windows操作系统的电脑,那么首先我们需要安装VMware Workstation,并在VMware中安装Centos版本的Linux虚拟机做测试用,安装教程如下:
《虚拟机 VMware Workstation-安装详细步骤(作者Envyᥫᩣᩚ)》
https://blog.csdn.net/2302_82029124/article/details/140334173
《linux笔记 - 安装虚拟机(作者zf xia)》
https://blog.csdn.net/qq_43021651/article/details/143341068
这里虚拟机我安装的是VMware Workstation Pro 17,centos镜像使用的是CentOS7.9,Xshell远程连接使用的Xshell8免费版,下载地址如下:
【VMware Workstation Pro 17】下载地址(3DM三大妈):
https://soft.3dmgame.com/down/321412.html
【CentOS7.9】镜像下载地址(阿里云镜像):
https://mirrors.aliyun.com/centos/7.9.2009/isos/x86_64/CentOS-7-x86_64-DVD-2207-02.iso
【Xshell8免费版】官网下载地址:
https://www.xshell.com/zh/free-for-home-school/
装完后效果(记得关闭防火墙,否则有可能xshell连不上):
如果虚拟机连不上外网(例如ping www.baidu.com不通),参考下文
《vmware创建的虚拟机无法连接外网(作者骑士999111)》
https://blog.csdn.net/qishiheyongshi/article/details/133001432
虚拟机和xshell都装好后,我们就可以使用xshell链接虚拟机,IP地址是我们在安装虚拟机的时候设置好的,用root登录就行:
进入根目录查看一下,显示正常即可:
二、安装Docker
在安装Elasticsearch之前,首先需要安装好Docker。什么是Docker?Docker是一个开源的容器化平台,它允许开发者将应用程序及其所有依赖项打包到一个标准化的单元中,这个单元被称为“容器”。容器可以在任何支持Docker的环境中运行,从而确保应用程序的可移植性和一致性。
简单来说,Docker就像一个轻量级的虚拟机,但它比虚拟机更高效,因为它直接使用宿主机的操作系统内核,而不是像虚拟机那样需要模拟一个完整的操作系统。这使得Docker容器的启动速度非常快,并且占用资源更少。
你可以把docker中的一个容器理解为即将安装到VMware中的装好了很多软件环境的ISO镜像文件,只不过这个ISO镜像文件很轻量级。
想了解更多信息大家可到Docker官网查看。安装Docker的教程详见:
《CentOS安装Docker(超详细)(作者屈家全)》
https://blog.csdn.net/weixin_56781779/article/details/132258636
输入“docker -v”查看Docker版本,显示无误后,Docker安装成功:
安装完Docker后,就可以开始安装Elasticsearch了。
有同学会问为啥要先安装docker?原因有如下几点:
在安装Elasticsearch之前先安装Docker,主要基于以下几个原因:
1、安装过程与复杂度
(1)直接安装:
需要手动下载Elasticsearch的二进制包或使用包管理器(如apt、yum等)进行安装。
安装过程可能涉及配置文件的编辑、服务的启动和管理等步骤。
(2)Docker安装:
使用docker pull命令从Docker Hub或其他镜像仓库下载Elasticsearch的Docker镜像。
使用docker run命令启动Elasticsearch容器。
安装过程相对简单,不需要手动配置Elasticsearch的多个细节。
2、资源管理与隔离性
(1)直接安装:
Elasticsearch直接运行在宿主机的操作系统上,直接访问宿主机的资源(如CPU、内存、磁盘等)。
性能直接受宿主机的资源限制,可能会与其他应用程序共享资源,影响性能或安全性。
(2)Docker安装:
Elasticsearch运行在一个隔离的Docker容器中,不会直接访问宿主机的资源。
可以通过Docker命令轻松设置容器的资源限制(如CPU、内存等)。
提供了良好的隔离性,Elasticsearch与其他容器或宿主机上的应用程序是隔离的。
3、升级与维护
(1)直接安装:
升级通常需要停止服务、替换二进制文件、重新配置等步骤。
维护和管理可能需要更多的手动操作。
(2)Docker安装:
升级通常只需要拉取最新的镜像并重新启动容器。
生命周期管理更加简单和自动化。
4、配置与数据持久化
(1)直接安装:
配置文件通常位于宿主机的某个目录中。
数据存储在宿主机上的指定目录中。
需要手动管理配置文件和数据。
(2)Docker安装:
可以使用docker run命令中的-v参数将宿主机上的目录挂载到容器内,以实现配置文件和数据的持久化。
即使容器被删除,配置文件和数据仍然保留在宿主机上。
综上所述,直接安装Elasticsearch和Docker安装Elasticsearch在多个方面存在显著差异。Docker安装提供了更好的资源隔离性、更简单的升级与维护流程以及更灵活的配置与数据持久化选项。而直接安装则可能更直接地利用宿主机的资源,但在资源管理和安全性方面可能需要更多的手动配置。在选择安装方式时,需要根据具体的使用场景和需求进行权衡。
三、安装Elasticsearch
1、需要安装的内容
这里我们部署的是单点的Elasticsearch,而不是集群的,所以安装一台服务即可。
我们要安装的软件除了Elasticsearch,还需要安装Kibana和IK分词器,它们都是数据处理和搜索分析领域的重要工具,各自有不同的功能与作用,区别如下:
(1)Elasticsearch
Elasticsearch是一个基于Lucene构建的开源、分布式、实时的搜索和分析引擎。它主要用于全文搜索、日志分析、实时数据分析等场景,支持多种数据类型(如文本、数字、地理位置等)和灵活的查询语言。Elasticsearch的核心优势包括大规模数据处理能力、高性能搜索、实时分析、灵活性和多样性、易于集成、可扩展性、容错性与高可用性,以及丰富的开源社区支持。
(2)Kibana
Kibana是一个开源的数据可视化和分析平台,设计用于与Elasticsearch协同工作。Kibana允许用户搜索、查看和与存储在Elasticsearch索引中的数据进行交互,可以轻松地执行高级数据分析,并以各种图标、表格和地图的形式可视化数据。Kibana的主要功能包括数据可视化、实时监控、用户友好的界面和与Elastic Stack的无缝集成。通过Kibana,用户可以创建和共享动态仪表板,实时显示Elasticsearch查询的变化,从而更好地理解和分析数据。
(3)IK分词器
IK分词器(IK Analyzer)是一款开源的中文分词工具,支持智能分词、细粒度分词等多种分词模式。它基于词典的分词算法,结合了最大匹配法和逆向最大匹配法,能够在保证分词准确性的同时,保持较高的分词速度。IK分词器的主要作用是将中文文本切分为有意义的词项,为后续的文本分析、信息检索、机器学习等任务提供基础数据。其优势在于高效性、灵活性和多种分词模式,适用于不同的应用场景。
总的来说,Elasticsearch、Kibana和IK分词器在数据处理和搜索分析领域各自扮演着重要的角色。Elasticsearch负责存储、搜索和分析数据;Kibana负责数据的可视化和管理;而IK分词器则专注于中文文本的分词处理,为Elasticsearch等搜索引擎提供准确的分词结果。
2、创建网络
因为我们还需要部署kibana容器,因此需要让es和kibana容器互联。这里先创建一个网络:
docker network create es-net
然后查看网络列表:
docker network ls
效果:
(1)命令含义
docker network create es-net 是一个Docker命令,用于创建一个新的Docker网络。在这个例子中,创建的网络名称是 es-net。Docker网络允许容器之间安全地通信,并且可以通过配置来限制外部访问。
(2)语法解释
docker:这是Docker命令行工具的调用命令,用于执行Docker相关的操作。
network:这是指定要操作的是Docker网络的一个子命令。Docker网络是Docker容器之间通信的基础设施。
create:这是指定要对Docker网络执行的操作,即创建一个新的网络。
es-net:这是新创建的Docker网络的名称。在这个例子中,网络被命名为 es-net,但你可以根据需要将其命名为任何有效的名称。
(3)为什么要创建网络?
在Docker中,容器之间默认是隔离的,它们不能直接相互通信,除非通过特定的网络配置。创建自定义网络(如 es-net)允许你将多个容器连接到一个共同的网络中,使它们能够相互通信。这对于部署需要相互通信的服务(如Elasticsearch和Kibana)非常有用。
Elasticsearch和Kibana容器互联:一旦你创建了 es-net 网络,你就可以在启动Elasticsearch和Kibana容器时将它们连接到这个网络。这可以通过在 docker run 命令中使用 --network 参数来实现。例如:
docker run -d --name elasticsearch --network es-net -p 9200:9200 -p 9300:9300 elasticsearch:latest
docker run -d --name kibana --network es-net -p 5601:5601 kibana:latest
在这个例子中,Elasticsearch和Kibana容器都被连接到了 es-net 网络,因此它们能够相互通信。Kibana将能够访问Elasticsearch提供的API,从而提供数据可视化和搜索功能。
总之,创建Docker网络是部署多个需要相互通信的容器时的一个重要步骤,它提供了容器之间安全通信的基础设施。
3、加载镜像
这里我们采用elasticsearch的7.12.1版本的镜像,这个镜像体积非常大,接近1G,pull下来需要花点时间,获取镜像包语法如下:
docker pull elasticsearch:7.12.1
在过程中可以会遇到报错,解决方案参考下面的文章:
《Error response from daemon: Get “https://registry-1.docker.io/v2/“: net/http: request canceled while(作者修心光)》
https://blog.csdn.net/qq18346342939/article/details/142751367
注:如果pull的时间太长,可以下载CSDN的离线安装包,下载地址:
https://download.csdn.net/download/booguojieji/85329645
使用方法:
elasticsearch的7.12.1版本的镜像,使用docker load -i elasticsearch.tar 加载镜像
kibana的7.12.1版本的镜像,使用docker load -i kibana.tar 加载kibana镜像包
ik分词器,解压到es的plugins目录下
4、运行Elasticsearch
安装好Elasticsearch的镜像后,使用下面的语句将es服务启动起来:
docker run -d \--name es \-e "ES_JAVA_OPTS=-Xms512m -Xmx512m" \-e "discovery.type=single-node" \-v es-data:/usr/share/elasticsearch/data \-v es-plugins:/usr/share/elasticsearch/plugins \--privileged \--network es-net \-p 9200:9200 \-p 9300:9300 \
elasticsearch:7.12.1
上述语句的解释如下:
(1)docker run -d
docker run 是Docker的命令,用于创建一个新的容器并运行一个命令。
-d 参数表示容器将以“分离模式”运行,即在后台运行。
(2)--name es
--name 参数后面跟的是容器的名称,这里将容器命名为es。
(3)-e "ES_JAVA_OPTS=-Xms512m -Xmx512m"
-e 参数用于设置环境变量。
这里设置的环境变量ES_JAVA_OPTS用于调整Elasticsearch的Java虚拟机(JVM)的启动参数。-Xms512m设置JVM的初始堆大小为512MB,-Xmx512m设置JVM的最大堆大小为512MB。
(4)-e "discovery.type=single-node"
同样使用-e参数设置环境变量。
discovery.type=single-node是Elasticsearch的配置,表示Elasticsearch将以单节点模式运行。这在开发或测试环境中很常见,但在生产环境中通常不推荐,因为缺乏高可用性和数据冗余。
(5)-v es-data:/usr/share/elasticsearch/data
-v 参数用于创建数据卷。
这里创建了一个名为es-data的数据卷,并将其挂载到容器内的/usr/share/elasticsearch/data目录。Elasticsearch的数据将存储在这个数据卷中,这样做的好处是即使容器被删除,数据也不会丢失。
(6)-v es-plugins:/usr/share/elasticsearch/plugins
同样使用-v参数创建数据卷。
这里创建了一个名为es-plugins的数据卷,并将其挂载到容器内的/usr/share/elasticsearch/plugins目录。这允许你将Elasticsearch插件安装在数据卷中,而不是容器内部,同样可以保持插件在容器删除后的持久性。
(7)--privileged
--privileged参数给予容器额外的权限,使得容器内的应用可以访问宿主机的设备,并可以执行一些通常需要较高权限的操作。这对于Elasticsearch这样的应用可能是必要的,因为它可能需要访问宿主机的一些资源。
(8)--network es-net
--network参数用于指定容器要连接的网络。
这里指定容器连接到名为es-net的Docker网络。这允许容器之间的网络通信,适用于需要相互通信的服务。
(9)-p 9200:9200和-p 9300:9300
-p 参数用于端口映射。
这里将容器内的9200、9300端口映射到宿主机的9200、9300端口。9200端口是Elasticsearch的HTTP API端口,用于RESTful通信。9300端口是Elasticsearch的节点间通信端口,用于集群内部通信。
(10)elasticsearch:7.12.1
这是要运行的Docker镜像的名称和标签。
这里使用的是elasticsearch镜像,版本为7.12.1。Docker会从Docker Hub(或其他配置的镜像仓库)下载这个镜像(如果本地没有的话),并基于它启动容器。
综上所述,这个命令启动了一个名为es的Elasticsearch容器,配置了JVM参数、以单节点模式运行、使用数据卷存储数据和插件、拥有较高的权限、连接到特定的Docker网络,并映射了9200和9300端口供外部访问。
启动后效果:
此时我们在浏览器输入http://ip:9200/,就可以看到如下界面(这里的ip是你的Linux虚拟机或服务器的ip):
里面包含了版本信息和服务启动时间,此时说明咱们的elasticsearch已经安装并启动成功。
5、安装Kibana
kibana可以给我们提供一个elasticsearch的可视化界面,便于我们学习。
运行docker命令,部署kibana
docker run -d \--name kibana \-e ELASTICSEARCH_HOSTS=http://es:9200 \--network=es-net \-p 5601:5601 \
kibana:7.12.1
●--network es-net :加入一个名为es-net的网络中,与elasticsearch在同一个网络中
●-e ELASTICSEARCH_HOSTS=http://es:9200":设置elasticsearch的地址,因为kibana已经与elasticsearch在一个网络,因此可以用容器名直接访问elasticsearch
●-p 5601:5601:端口映射配置
效果:
kibana启动一般比较慢,需要多等待一会,可以通过命令:
docker logs -f kibana
查看运行日志,当查看到下面的日志,说明成功:
此时,在浏览器输入地址访问:http://ip:5601,即可看到结果(这里的ip是你的Linux虚拟机或服务器的ip):
这里就是Kibana的首页,下面有两种操作模式,一种是“Add Data”导入数据进行试用,一种是“Explore on my own”自己玩。这里我们选择自己玩:
进入“Explore on my own”后,在右上角可以看到“Manage”按钮,是用于管理的,而“Dev tools”即是开发工具。当然我们也可以点击左侧的三个横线,打开主菜单:
这些菜单牵扯到es的各种各样的管理,包括数据分析、外观、安全管理等等。
我们先来用一下Dev tools这个工具:
这是一个DLS(Elasticsearc的查询语句格式)的控制台,它可以让我们非常方便的去发送DLS的请求:
默认在左侧显示的json语句,就是我们的DSL语句。这个语句的含义是“查询所有的数据”。而第一句中的“GET”代表的是我们发送的是一个RESTful风格的HTTP的GET请求,“_search”代表我们要做的是搜索操作。
如果我们点击播放的小按钮,Kibana就会发送左侧的DSL语句给es服务(Kibana之所以知道es服务的地址,是因为在前面我们启动Kibana的时候,已经通过“ELASTICSEARCH_HOSTS”参数指定了es的访问地址)。点击后效果:
可以看到右侧已经有es的反馈结果了,搜到了很多数据信息。
如果我们直接GET一个“/”空路径,那么它输出的结果,就和我们安装好es直接在浏览器上访问的结果一样:
还剩下一个IK分词器没安装,我们在下一篇博文中单独进行讲解。
参考:《黑马Elasticsearch全套教程》
转载请注明出处:https://guangzai.blog.csdn.net/article/details/144490516
相关文章:

【Elasticsearch入门到落地】4、Elasticsearch的安装
接上篇《3、es与mysql的概念对比》 上一篇我们学习了Elasticsearch与Mysql的概念与区别。本篇我们来进行Elasticsearch的环境准备及软件安装。 一、环境准备 如果我们没有自己的Linux服务器,且现在正在使用的是Windows操作系统的电脑,那么首先我们需要安…...

计算无人机俯拍图像的地面采样距离(GSD)矩阵
引言 在无人机遥感、测绘和精细农业等领域,地面采样距离(Ground Sampling Distance,简称 GSD)是一个非常重要的指标。GSD 是指图像中每个像素在地面上实际代表的物理距离,通常以米或厘米为单位。GSD 决定了图像的空间…...

牛客网 SQL37查找多列排序
SQL37查找多列排序 select device_id,gpa,age from user_profile order by gpa asc,age asc#select [字段1,字段2] from [表名] order by [字段1] [升序(asc)/降序(desc)],[字段2] [升序(asc)/降序(desc)] #select:查询 #order by 排序 每日问题 如何处理对象的状…...

el-tabs标签过多
tab-position:top情况 .el-tabs__nav-wrap{overflow-x: auto ;width: 86% ;margin-left: 10px ; } 效果: tab-position:left情况 .el-tabs__nav-wrap{overflow-x: auto ;height: 高度 ;margin-top: 10px ; } 效果: 注意&…...

如何制作搞笑配音视频?操作方法
在数字娱乐盛行的今天,搞笑配音视频凭借其独特的幽默感和创意,在网络上赢得了大量观众的喜爱。如果你也想尝试制作一部让人捧腹的搞笑配音视频,那么请跟随以下步骤,从撰写搞笑文案到视频配音剪辑,一步步打造你的作品。…...

[Unity]Unity跨平台开发之针对Android开发
用户手册的这一部分包含Android平台关于输入(input)、资产管理(asset management)和调试(debugging)等相关主题的开发信息。 Android移动脚本编写 注意:安卓可以在C#中使用UNITY_ANDROID来进行…...

ELK部署
背景 很多公司还是在单体项目中苦苦挣扎,没有必要上elk系统,大家都懂的一个原则系统的技术栈越多系统越复杂,维护起来也越麻烦,在没有大流量高并发的情况下我们就用单体服务挺舒服。我们行业的特殊性做的都是BTB的项目࿰…...

ELK系列-(四)轻量级的日志收集助手-Beat家族
一、前文回顾 ELK系列-(一)Docker部署ELK核心组件 ELK系列-(二)LogStash数据处理的瑞士军刀 ELK系列-(三)Kibana 数据可视化的艺术家 关于部署的整体架构欢迎大家回到前面的文章观看,此处&a…...

NodeJs-包管理工具
包英文单词是 package ,代表了一组特定功能的源码集合 管理包的应用软件,可以对包进行 下载安装 , 更新 , 删除 , 上传 等操作 借助包管理工具,可以快速开发项目,提升开发效率 前端常用的包管理…...

AWR microwave office 仿真学习(二)使用多层结构天线/超表面的S参数确定层间距
引言 如果大家有看过一些多层天线或超表面的论文,有两种比较常用的分析方法,等效电路法和传输线分析法,这两种方法都是三维结构的电磁问题转换为二维/集总的电路问题。本文就介绍根据这种思想进行多层结构优化的一种方法:在AWR软件中根据单层结构的S参数,确定最佳层间距。…...

【zlm】 webrtc源码讲解三(总结)
目录 setsdp onwrite 编辑 play 参考 setsdp onwrite play 参考 【zlm】 webrtc源码讲解_zlm webrtc-CSDN博客 【zlm】 webrtc源码讲解(二)_webrtc 源码-CSDN博客...

Springboot+Druid(可切换Hikari)+Mybatis-plus+mysql+hive的多数据源项目配置
1.搭建一个springboot项目,不会的搜一下,很简单这里不做赘述。 2.首先你搭建的springboot能正常启动之后,pom文件添加如下依赖: <dependency><groupId>com.alibaba</groupId><artifactId>druid</arti…...

Git使用步骤
Git 是一个分布式版本控制系统,广泛用于软件开发和其他需要跟踪文件变更的项目。以下是 Git 的基本使用方法和一些常用命令的详细说明。 安装 Git 在大多数操作系统上,你可以通过包管理器安装 Git: Windows: 下载并安装 Git for Windows。…...

Python+OpenCV系列:AI看图识人、识车、识万物
在人工智能风靡全球的今天,用 Python 和 OpenCV 结合机器学习实现物体识别,不仅是酷炫技能,更是掌握未来的敲门砖。本篇博文手把手教你如何通过摄像头或图片输入,识别人、动物、车辆及其他物品,让你的程序瞬间具备 AI …...

springboot449教学资源共享平台(论文+源码)_kaic
摘 要 如今社会上各行各业,都喜欢用自己行业的专属软件工作,互联网发展到这个时候,人们已经发现离不开了互联网。新技术的产生,往往能解决一些老技术的弊端问题。因为传统教学资源共享平台信息管理难度大,容错率低&am…...

类OCSP靶场-Kioptrix系列-Kioptrix Level 4
一、前情提要 二、实战打靶 1. 信息收集 1.1. 主机发现 1.2. 端口扫描 1.3.目录遍历 1.4. 敏感信息 2.漏洞发现 2.1.登录框万能密码 2.2.系统用户密码-ssh链接 2.3.mysql-udf提权 一、前情提要 kali黑客-利用searchsploit搜索exp一键化攻击-CSDN博客 一篇文章带你理…...

贪心算法在背包问题上的运用(Python)
背包问题 有n个物品,它们有各自的体积和价值,现有给定容量的背包,如何让背包里装入的物品具有最大的价值总和? 这就是典型的背包问题(又称为0-1背包问题),也是具体的、没有经过任何延伸的背包问题模型。 背包问题的传统求解方法较为复杂,现定义有一个可以载重为8kg的背…...

POD 存储、PV、PVC
目录 容器如何持久化存储? PV和PVC 为什么不能直接在 Pod 或容器中存储数据? 什么是 PV和 PVC? 可以使用本地磁盘空间创建PV吗? 如何让客户端通过ftp上传到远端服务器的POD里面? 另一个POD想访问ftp的POD里面的…...

C中strlen和sizeof的区别
1、代码如下: #include<stdio.h>int main() {char a[10] { h,e,l,l,0};printf("%d\n",strlen(a));printf("%d\n", sizeof(a));return 0; } 2、运行结果如下:...

WSL2内部的Ubuntu怎么设置网络内桥接模式,弄了好久老是不成功,怎么办?
环境: Win10专业版 WSL2 Ubuntu22.04 问题描述: WSL2内部的Ubuntu怎么设置网络内桥接模式 解决方案: 方法一 1.控制面板开启,Hyper-V 管理器 2.重启电脑 3…创建外部虚拟交换机 打开 Hyper-V 管理器,在右侧操作面板中点击“虚拟交换机管理器”。 选择“创建虚…...

Linux环境下 搭建ELk项目 -单机版练习
前言 ELK 项目是一个由三个开源工具组成的日志处理和分析解决方案,ELK 是 Elasticsearch、Logstash 和 Kibana 的首字母缩写。这个项目的目标是帮助用户采集、存储、搜索和可视化大量的日志和事件数据,尤其是在分布式系统中。下面是每个组件的概述&…...

ubuntu20.04安装mysql5.7
安装之前要确保之前没安装过或者安装后卸载干净了,不然后面的配置文件可能会报错。 1. 下载安装包 打开链接 downloads.mysql.com/archives/co… 选择相应版本进行下载,这里mysql版本选择 5.7.35,系统选择Ubuntu Linux,选择64位…...

MacPorts 安装 Tengine
创建 Portfile 以下是我参考 nginx 调整后的 Portfile,如需安装指定版本,除了修改版本号之外还需要修改 checksums 里的 sha256 sha256 值需下载 Tengine 源码文件(tar.gz)进行计算 模块的调整在最后的 configure.args-append …...

Git安装及基础学习
Git学习 Git安装 概述: Git是一个开源的分布式版本控制系统,可以有效、高速的处理 从很小到非常大的项目版本管理,是目前使用范围最广的版本 管理工具。 下载安装: 下载地址:https://git-scm.com/ 下载后傻瓜式一键安…...

【celery】任务有时候不执行
celery任务有时执行,有时不执行,这种情况是任务被冒领;有时执行说明这个方法可以使用,有时不执行通常是被使用同一个消息队列的进程冒领了; 解决 Redis:指定一个分块就行了...

【恶意软件检测论文】通过提取 API 语义来实现的一个新颖的安卓恶意软件检测方法
目录 摘要1. 引言2. 相关工作2.1. 基于重新训练的恶意软件检测2.2. 基于应用关系图的恶意软件检测2.3. 基于异常样本识别的恶意软件检测2.4. 基于API聚类的恶意软件检测 3. AMDASE概述4. 基于语义距离的API聚类4.1. API特征提取4.2. API句子生成4.3. API句子编码4.4.聚类中心生…...

什么,不用 Tomcat 也能运行 Java web?
在 Java web 开发领域,传统的 Tomcat 服务器一直占据着重要地位。但如今,Blade 框架的出现为我们提供了一种全新的开发体验,它无需依赖 Tomcat 便可运行 Java web 应用。 一、Blade 框架简介 是一款轻量级且高性能的 Java web 框架。其设计理…...

华为HarmonyOS实现跨多个子系统融合的场景化服务 -- 1 构建快速验证手机号Button
场景介绍 快速验证手机号Button功能用于帮助开发者向用户发起手机号申请,应用在满足《常见类型移动互联网应用程序必要个人信息范围规定》(对第三方网站的内容,华为公司不承担任何责任)中使用手机号的必要业务场景,经…...

王佩丰24节Excel学习笔记——第十一讲:Vlookup函数
【以 Excel2010 系列学习,用 Office LTSC 专业增强版 2021 实践】 【本章小技巧】 掌握vlookup使用方法,选区的第一列一定是查询参数条件一。使用通配符查询。vlookup 限 255 位长度。掌握日常使用场景。使用vlookup模糊匹配查询个税 一、使用Vlookup函…...

【QT实战の心情笔记】
文章目录 界面布局主要界面分为三部分:1. 笔记列表区域2. 笔记内容编辑区域3. 操作按钮区域 Qt Designer 界面设计步骤完整界面布局图各控件设置和属性Qt Designer 文件 (.ui) 数据库表结构SQL 表结构: 逻辑代码1. 项目结构2. Note 类 (Note.h 和 Note.c…...