目录
- 前言
- ElasticSearch简介
- 环境准备
- 版本选择
- 安装包下载
- 安装与配置
- 分词效果演示
- 本篇结束
- 下一篇文章介绍
前言
不瞒你们说,这是我第一篇博客文章,如果有错误或者更好的解决方案,希望大家可以留言指出。最近博主忙着毕业设计项目。由于毕设选题中涉及到文本检索,而且数据量也相当大。为了提高全文检索速度,博主第一次接触ElasticSearch这个神器,但在安装开发环境的时候就踩了不少坑。elasticsearch首先它各版本差异比较大,其次就是它的更新迭代速度实在太快了,以至于在整合spring boot和中文分词插件的时候版本不统一产生各种问题。所以,本文将会详细记录博主踩坑的全过程,希望大家能在环境配置问题上少走弯路。
Elasticsearch简介
ElasticSearch是一个基于Lucene的搜索服务器。它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful web接口。Elasticsearch是用Java语言开发的,并作为Apache许可条款下的开放源码发布,是一种流行的企业级搜索引擎。(来源于百度百科)
优点:
- 它是分布式的
- 它是接近实时搜索
- 提供Restful web接口
环境准备
- win10操作系统
- JDK1.8以上(正确配置环境变量)
- Elasticsearch 6.4.3、Kibana 6.4.3、Elasticsearch-head可视化插件(可选)、hanlp中文分词插件安装包
Es对JDK版本的支持:参考官网
续表
Elasticsearch和Kibana版本对应关系:参考官网
版本选择
为什么我会选择下载Elasticsearch 6.4.3而不选择最新版 7.3.2 呢?原因很简单,就是我在整合spring boot 2.x 的时候出现了版本不支持的问题。截至2019年10月3日,spring-boot-starter-data-elasticsearch目前最新稳定版本适用于Elasticsearch 6.4.3。
注意:下载的Elasticsearch和Kibana的版本尽量保持一致,否则会出现各种莫名其妙的问题。Elasticsearch-head下载最新版本即可。分词器版本比Es高或者和Es保持一致
安装包下载
官网下载:
Elasticsearch 6.4.3地址:https://www.elastic.co/downloads/past-releases#elasticsearch
Kibana 6.4.3 地址:https://www.elastic.co/downloads/past-releases#kibana
Elasticsearch-head地址:https://github.com/mobz/elasticsearch-head
Hanlp 6.4.3中文分词插件地址:https://github.com/KennFalcon/elasticsearch-analysis-hanlp
浏览器下载速度慢而且容易中断怎么办?
在虚拟机Linux终端: wget http://www.xxxxxxxx.com/xxx.zip
安装与配置
1. Elasticsearch安装
- 解压elasticsearch-6.4.3.zip到指定目录
- 此电脑>高级系统设计>环境变量>path>编辑>新建
3. 进入bin目录,双击启动 elasticsearch.bat文件,或者切换到bin目录,在cmd命令行输入:start /b elasticsearch
在后台运行Es
4. 打开浏览器,输入:http://localhost:9200/
5. 如果控制台输入日志如下,且没有报错,证明Elasticsearch已经安装成功,且正确启动
2. Kibana安装
- 解压kibana-6.4.3-windows-x86_64.zip到指定目录
- 此电脑>高级系统设计>环境变量>path>编辑>新建(步骤同上)
- 进入bin目录,双击启动 kibana.bat文件,或者切换到bin目录,在cmd命令行输入:
start /b kibana
在后台运行Kibana - 打开浏览器,输入:
http://localhost:5601/
3. Elasticsearch-Head可视化插件安装
可参考官方GitHub:https://github.com/mobz/elasticsearch-head
- 提前安装好node,并配置好环境变量
- cmd进入目录:
cd elasticsearch-head
- 下载依赖包:
npm install
- *执行启动命令:
npm run start
- 浏览器打开:
http://localhost:9100/
- 查看能否连接上Es
注意:因为博主事先已经下载了依赖,所以可以直接run start启动
如果集群健康值为yellow也属于正常现象,原因是只有一台机器,不存在集群,副本无法存放到其他集群
注意:如果插件无法连接上Es,解决方案如下:
-
修改%{ESHOME}%/config/elasticsearch.yml文件
-
在文件末尾添加下面两行:
-
http.cors.enabled: true
-
http.cors.allow-origin: "*"
-
重启Es,刷新浏览器
4. Hanlp中文分词插件安装
可参考官方GitHub:https://github.com/KennFalcon/elasticsearch-analysis-hanlp
- 下载好对应的版本,解压
- 在Es安装目录
%{ESHOME}%/config
目录下新建文件夹analysis-hanlp
- 把刚解压的config目录下的
hanlp.properties
文件,移动到%{ESHOME}%/config/analysis-hanlp
目录 - 把刚解压的目录重命名为analysis-hanlp,并移动到%{ESHOME}%/plugins文件夹
- 修改hanlp.properties文件root路径,指定到plugins/analysis-hanlp,保存(路径必须为绝对路径)
- 重启Es服务
- 浏览器打开:
http://localhost:5601/
注意:博主Es安装目录%{ESHOME}%为:
D:\install\elasticsearch-6.4.3
,hanlp.properties配置文件和目录树形结构如下:
分词效果演示
1. Es自带分词器
- 标准分词器standard:基于语法的分词(基于Unicode文本分割算法),适用于大多数语言
- 简单分词器simple:基于字母的分词,如果遇到不是字母时直接分词,所有字母均置为小写
- 空格分词器whitespace:基于空格的分词,如果遇到空格时直接分词
Es还有其它分词器,这里就不一一举例了
注意:Es自带分词器从分词效果上看,对中文分词都是十分感人的,接下来我们看第三方分词器:hanlp分词器
2. hanlp自然语言分词器
- 默认分词器hanlp
- 索引分词器hanlp_index
注意:由于时间关系,这里只演示hanlp分词器中的两种,具体可参考官方用法。官方地址:https://github.com/KennFalcon/elasticsearch-analysis-hanlp
本篇结束
不知不觉中,我的第一篇博客文章就写完了,才发现写文章是真的超级耗费时间,而且太累了。如果这篇文章对你学习或解决问题有所帮助,可以的话,请在右上方给我一个赞?。你的肯定将会成为我以后创作的更大动力!
注意:下面二维码是博主的微信公众号,想跟博主聊聊人生的可以关注一下
下一篇文章介绍
下一篇文章将会是关于Elasticsearch和spring boot 2.x的整合实战
,欢迎大家收藏关注…