Linux 安装Elasticsearch和配置ik分词器步骤

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/liboyang71/article/details/78553634

今天给同学们带来的是关于Elasticsearch的简单介绍以及如何在linux中搭建elasticsearch和增添ik分词器,本篇文章我们以搭建elasticsearch为主,后续的文章中将会将es与springboot结合,将其添加到实际开发中。

1.Elasticsearch简介

1.1什么是Elasticsearch

Elasticsearch是一个分布式可扩展的实时搜索和分析引擎。是一个建立在Apache Lucene基础上的搜索引擎,但是Lucene只是一个框架,使用十分复杂。而es使用Lucene作为内部引擎,我们只需要使用统一开发好的api即可,而不需要了解Lucene背后复杂的运行原理。当然全文搜索只是es的其中一个功能,es还可以进行许多其他的工作。
好了,我们只是对es进行一个简单的介绍,如果需要了解更多,网上有大量的文章可以来进行阅读,那我们来切入正题,开始进行es的安装。

2.Elasticsearch安装

2.1 环境准备

首先安装es需要java环境,因此我们来先安装java,很容易,一句命令

yum install java-1.8.0-open*

2.2 下载Es

首先,我们需要进行es的下载,我们来到官网上选择我们需要的版本。本次案例我们以2.4.0版本为例,之所以没有选择最新的版本作为案例,因为后期我们需要与springboot融合,目前来看springboot无法对最新版本的es有很好的集成,所以我们选择2.4.0版本进行演示,下载地址如下https://www.elastic.co/downloads/past-releases
这里写图片描述

2.3 安装

2.3.1 将压缩包上传至服务器
这里写图片描述

2.3.2 解压缩

tar -zxvf elasticsearch-2.4.0.tar.gz

2.3.3 创建账号
注意!es启动是不允许使用root账号来启动的,所以我们需要来创建一个其他的账号并赋予其账号对应权限

#创建账号
useradd maxrocky
#赋权限
chown -R maxrocky:maxrocky /phoenix/elastic/elasticsearch-2.4.0

此时我们可以看到文件夹的信息已经变为了我们创建的maxrocky
这里写图片描述

2.3.4 启动es
我们进入到es的bin目录将es启动

#切换账号
su maxrocky
#启动es
./elasticsearch

这里写图片描述

此时我们启动了es,我们来再开一个远程连接来测试一下es是否启动成功,注!此时不要把es关掉,因为我们并没有使用后台方式来开启,如果关掉es也就被关掉了,也可以使用./elasticsearch -d 命令来后台开启es,此时使用前台开启主要是为了让同学们看到输出日志,来确保es是否成功开启。

2.3.5 检测开启是否成功

curl localhost:9200

这里写图片描述

到这里我们的es就算是安装好了,但是还没有结束,要达到使用还是有一些必备的配置以及插件要进行安装的,接下来我们来进行说明。

2.4 开启远程访问

此时你会发现,明明开启了服务,却通过外界网页浏览的话无法访问到,此时需要我们来开启远程访问。我们以vi进入到config文件下的elasticsearch.yml文件中。
这里写图片描述

进入配置文件 修改network.host为0.0.0.0 注意!因为是yml文件,所以一定要注意格式。要完全按照图中的格式来,尤其是空格的都少。否则启动会报错。
这里写图片描述

保存,重启es,成功
这里写图片描述

3.安装head插件

3.1 head简介

head是一个界面化的集群操作和管理工具,可以让我们更好的更直观的对es里的数据进行查看和管理。

3.2 head安装

首先我们切换到es的bin目录下,之后输入安装命令

#切路径(根据自己的es存放位置定)
cd /phoenix/elastic/elasticsearch-2.4.0/bin/
#安装插件
./plugin install mobz/elasticsearch-head

重启es,访问路径http://你的ip:9200/_plugin/head/,如下图所示,安装成功。
这里写图片描述

4.添加IK分词器

4.1 添加原因

一般像solr和es这类搜索引擎自带的分词器对中文的分词效果都是非常差的,我们来看个例子。

首先,我们先使用刚刚安装好的head插件来添加一个名为shop的索引,如图所示

这里写图片描述

之后我们来看一下默认的分词器是如何来拆分’五常大米’这几个字的,在浏览器中输入
http://你的ip:9200/shop/_analyze?pretty&analyzer=standard&text=五常大米

如下图所示
这里写图片描述
默认的分词器将每一个字都进行了拆分,很明显这不是我们想要的,我们想要的是当我们搜索’大米’或者’五常米’之类的字的时候能搜索到我们要的这条数据,而不是一个字一个字的进行拆分。这时我们就需要引入分词器,而ik分词器就是一个很不错的选择。

4.2 下载ik分词器

一般到github上下载源码,之后使用maven进行编译,需要注意的是es与ik是有版本匹配的,所以需要找到配对的版本,目前我们安装的es是2.4.0版本,所以使用了对应的1.10.0版本的ik分词器,下载地址为:http://download.csdn.net/download/liboyang71/10121696 (没办法csdn必须设置积分,考虑到需要的同学提供了别的下载地址链接:http://pan.baidu.com/s/1boQmgCR 密码:niaz)对应版本的信息可以到github中去进行查看,拿到自己所需的ik版本。

4.3 ik分词器安装

下载完后,我们将ik分词器上传到我们的es的plugins/ik目录下,ik文件夹需要我们自己创建,命令如下

#切换目录
cd /phoenix/elastic/elasticsearch-2.4.0/plugins/
#创建ik文件夹
mkdir ik
#切换到ik文件夹下进行文件上传
cd ik
#没有unzip命令的同学输入如下命令安装unzip命令
yum install -y unzip
#对zip进行解压
unzip elasticsearch-analysis-ik-1.10.0.zip

重启es,我们会发现启动时的信息多了一个关于ik的信息,如图所示
这里写图片描述
之后在浏览器中查看我们之前试过的’五常大米’http://你的ip:9200/shop/_analyze?pretty&analyzer=ik_max_word&text=五常大米
结果如图所示(我们这次的urlanalyzer换为了ik_max_word,这是在指定我们刚装好的新的分词器)
这里写图片描述
好了,分词器达到了我们预期的效果。ik分词器我们也算是安装成功了。

4.4 更改es默认使用的分词器(附加)

虽然我们已经安装好了ik分词器,但是如果后期我们在与java结合开发的时候,我们会发现如果我们不刻意去指定使用哪个分词器,还是会使用默认的分词器,这样虽然可以用代码设置来解决,但是如果我们直接将默认分词器改为ik分词器岂不是更方便,这个设置看个人需求,不是必备设置的。
4.4.1 修改默认分词器为ik分词器
其实很容易,只要在elasticsearch.yml中加入两行配置即可
index.analysis.analyzer.default.tokenizer : “ik_max_word”
index.analysis.analyzer.default.type : “ik”
这里写图片描述
还是提醒同学们要记得注意格式,尤其空格。

5.设置自定义分词器

虽然现在安装了ik分词器已经能满足我们的大部分需求了,但是还有一些词组使我们不想进行拆分的特殊词,接下来来说一下我们如何配置自定义分词器,步骤很简单,如下所示

5.1 配置自定义分词器

其实只要将我们plugins/ik/config/custom此目录下的mydict.dic文件中添加我们要自定义的词即可。(如下图所示)
这里写图片描述
使用vi命令进行编辑
这里写图片描述

最后,除了启动es时候切换成新建的账号其余的操作还是使用root账户比较好,省的出现一些权限不足而报错的问题。

好了,之后重启es就大功告成了。在开发的时候只要直接存储数据就会按照ik分词器的切词方式来进行存储了。

猜你喜欢

转载自blog.csdn.net/liboyang71/article/details/78553634