因为业务需要,需要对10W+论文数据实现全文检索功能,所以需要使用一套成熟的检索框架,所以选择了SpringBoot+ElasticSearch来实现业务功能。
先说下Mysql和ElasticSearch的对比,以便更清晰直观的了解ElasticSearch
MySQL | Elasticsearch | 说明 |
Table | Index | 索引(index),就是文档的集合,类似数据库的表(table) |
Row | Document | 文档(Document),就是一条条的数据,类似数据库中的行(Row),文档都是JSON格式 |
Column | Field | 字段(Field),就是JSON文档中的字段,类似数据库中的列(Column) |
Schema | Mapping | Mapping(映射)是索引中文档的约束,例如字段类型约束。类似数据库的表结构(Schema) |
SQL | DSL | DSL是elasticsearch提供的JSON风格的请求语句,用来操作elasticsearch,实现CRUD |
本地环境:操作系统windows10、java环境 jdk-17.0.4 、node环境16.18.1 、npm 8.19.2
准备工作
1.ElasticSearch部署
1.1 ElasticSearch下载
下载地址官网地址:Download Elasticsearch 下载windows版,我下载的是 8.11.0 版本
CSDN下载地址:https://download.csdn.net/download/qq_28147821/88571721
下载后直接在本地解压
1.2 ES分词器elasticsearch-analysis-ik下载
我下载的是 V8.11.0 版本
官网地址:elasticsearch-analysis-ik
CSDN下载地址:https://download.csdn.net/download/qq_28147821/88571725
分词器版本要与ES版本对应,直接下载压缩包,下载后直接在本地解压,下图是解压后内容
下一步,将ik分词器目录放到es插件目录plugins下,并改名ik
1.3 elasticsearch启动
(1)找到启动文件elasticsearch.bat,鼠标右键点击,以管理员运行
(2)运行成功后,在浏览器输入http://localhost:9200/ 弹出登陆界面
(3)重置密码 命令行进入 D:\tool\elasticsearch-8.11.0\bin 目录下
输入命令 elasticsearch-reset-password -u elastic
将会提示是否继续,输入y 回车,将重置密码
将账号:elastic 重置后的密码输入,即可打开连接,表示启动完成
2.Kibana部署
Kibana是一个开源的分析和可视化平台,类似于mysql对应的navicat,设计用于和Elasticsearch一起工作。可以用Kibana来搜索,查看,并和存储在Elasticsearch索引中的数据进行交互。类似的还有Elasticsearch-head 用于浏览器插件,不过安装较为复杂,界面有点老旧,所以使用Kibana更方便。
2.1 Kibana下载
官网下载地址 https://www.elastic.co/cn/downloads/past-releases#kibana
CSDN下载地址:https://download.csdn.net/download/qq_28147821/88571707
Kibana需要下载和es对应的版本,所以我选择下载windows版的Kibana8.11.0版本
解压后文件夹
2.2 Kibana运行
解压后,保证ElasticSearch正在运行的情况下(能访问http://localhost:9200/),进入bin目录右键kibana.bat 以管理员运行。
启动成功后,在浏览器输入地址 :http://localhost:5601/即可访问kibana
如果初次启动,出现 kibana server is not ready yet. 表示kibana未能连接到ElasticSearch
(1)确保ElasticSearch已经启动
(2)查看kibana报错信息
missing authentication credentials for REST request [/_nodes?filter_path=nodes.*.version%2Cnodes.*.http.publish_address%2Cnodes.*.ip]
报错显示,缺少REST请求的身份验证凭据
原因:ES的安全认证,在此由于是测试,直接在es的config文件夹下elasticsearch.yml中,添加xpack.security.enabled: false 即可
修改完成后,重新运行elasticsearch.bat启动es
浏览器重新进入http://localhost:5601,出现以下界面,表示启动成功
点击Explore on my own 独自探索即可进入首页
(2)分词测试
点击左侧列表栏,单机Dev Tool
输入分词语句,即可进行分词处理
POST _analyze
{
"text":"当地时间11月14日下午,应邀同美国总统拜登举行中美元首会晤,同时应邀出席亚太经合组织第三十次领导人非正式会议,受到美国加利福尼亚州州长纽森、财政部长耶伦等美方代表热情迎接。",
"analyzer":"ik_smart"
}
分词类型分为最小切分ik_smart和最全切分ik_max_word
至此,Kibana安装完成
汉化:kibana.yml设置 i18n.locale: "zh-CN" 重启kibana即可
3.Logstash部署
Logstash是一款强大的开源数据收集引擎。它能够从不同来源收集数据,并将其动态地汇聚,进而根据我们定义的规范进行转换或者输出到我们定义的目标地址,配合ElasticSearch的使用,能够同步es的数据源,实现强大的全文检索能力。
3.1 Logstash下载
下载地址:https://www.elastic.co/cn/downloads/past-releases#logstash
CSDN下载地址:https://download.csdn.net/download/qq_28147821/88571713
下载版本:选择对应的8.11.0 windows版
3.2 Logstash部署
下载后解压文件夹,在config文件夹下打开logstash-sample.conf,进行如下配置,修改es登陆密码
命令行工具进入Logstash的bin目录下,执行语句
logstash.bat -f D:\tool\logstash-8.11.0\config\logstash-sample.conf
即可启动成功
C:\Users\hsc>d:
D:\>cd D:\tool\logstash-8.11.0\bin
D:\tool\logstash-8.11.0\bin>logstash.bat -f D:\tool\logstash-8.11.0\config\logstash-sample.conf
浏览器输入地址http://localhost:9600/ 显示如下信息启动成功
3.3 Logstash数据同步
本点将搭建:mysql数据同步到es中
后续更新中
4.安装Elasticsearch-head部署
elasticsearch-head 是用于监控 Elasticsearch 状态的客户端插件,包括数据可视化、执行增删改查操作等。 elasticsearch-head插件是使用JavaScript开发的,依赖Node.js库,使用Grunt工具构建,所以要安装elasticsearch-head,还需要先安装Node.js和Grunt。
node安装:下载地址https://nodejs.org/en/download/
下载Windows版msi的,下载完成直接默认安装。
grunt安装:直接在命令行输入:npm install -g grunt-cli 即可安装
node和grunt版本:
4.1 Elasticsearch-head下载
CSDN下载地址:https://download.csdn.net/download/qq_28147821/88571702
4.2 Elasticsearch-head运行
下载压缩包后,直接解压,直接打开index.html即可运行查看es各项数据