ElasticSearch安装(附:head、ik分词器)
一、准备:
1.jdk1.8:
#下载linux tar.gz
https://www.oracle.com/technetwork/java/javaee/downloads/jdk8-downloads-2133151.html
#解压
tar -zxvf ×××.tar.gz
#参数配置 vim /etc/profile
export JAVA_HOME=/usr/local/java/jdk1.8.0_171
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
2.关闭防火墙
#停止firewall
systemctl stop firewalld.service
#禁止firewall开机启动
systemctl disable firewalld.service
#查看默认防火墙状态(关闭后显示notrunning,开启后显示running)
firewall-cmd --state
二、下载ElasticSearch 2.4
下载地址:https://www.elastic.co/downloads/past-releases
三、安装
1.解压 并修改配置文件
tar -zxvf elasticsearch-2.4.0.tar.gz
#vi config/elasticsearch.yml
#cluster name
cluster.name: sojson-application
#节点名称
node.name: node-1
#绑定IP和端口
network.host: 123.88.88.88
http.port: 9200
2.创建账号:
es启动是不允许使用root账号来启动的,所以我们需要来创建一个其他的账号并赋予其账号对应权限
#添加一个用户:elasticsearch
$useradd elasticsearch
#给用户elasticsearch设置密码,连续输入2次
$passwd elasticsearch
#创建一个用户组 es
groupadd es
#分配 elasticsearch 到 es 组
usermod -G elasticsearch es
#这里注意下,如果提示用户“es”不存在,那么是因为服务器版本问题,你可以换成 usermod -G es elasticsearch ,也就是用户和用户组对调一下使用。
#这里感谢【武汉|Java|竹木鸟】发现这个问题,并告知我。
#在elasticsearch 根目录下,给定用户权限。-R表示逐级(N层目录) , * 表示 任何文件
chown -R elasticsearch.es *
#切换到elasticsearch用户
su elasticsearch
3.启动
#切换账号
su elasticsearch
#启动
./bin/elasticsearch
4.检测开启是否成功
访问: http://ip:9200
四、安装插件head
#转至安装目录 bin
cd ./bin/
#安装插件
./plugin install mobz/elasticsearch-head
# restart
五、添加分词器(IK)
默认的分词器将每一个字都进行了拆分,很明显这不是我们想要的,我们想要的是当我们搜索’大米’或者’五常米’之类的字的时候能搜索到我们要的这条数据,而不是一个字一个字的进行拆分。这时我们就需要引入分词器,而ik分词器就是一个很不错的选择。
1.下载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版本。
#注:百度云盘中的分词器 需要修改 plugin-descriptor.properties
java.version=1.8
elasticsearch.version=2.4.0
2.ik分词器安装
下载完后,我们将ik分词器上传到我们的es的plugins/ik目录下,ik文件夹需要我们自己创建,命令如下
#切换目录
cd 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
3.更改es默认使用的分词器(附加)
#虽然我们已经安装好了ik分词器,但是如果后期我们在与java结合开发的时候,我们会发现如果我们不刻意去指定使用哪个分词器,还是会使用默认的分词器,这样虽然可以用代码设置来解决,但是如果我们直接将默认分词器改为ik分词器岂不是更方便,这个设置看个人需求,不是必备设置的。
#4.4.1 修改默认分词器为ik分词器
#其实很容易,只要在elasticsearch.yml中加入两行配置即可
index.analysis.analyzer.default.tokenizer : "ik_max_word"
index.analysis.analyzer.default.type : "ik"
4.配置自定义分词器
其实只要将我们plugins/ik/config/custom此目录下的mydict.dic文件中添加我们要自定义的词即可。(如下图所示)
使用vi命令进行编辑
六、备注
最后,除了启动es时候切换成新建的账号其余的操作还是使用root账户比较好,省的出现一些权限不足而报错的问题。
好了,之后重启es就大功告成了。在开发的时候只要直接存储数据就会按照ik分词器的切词方式来进行存储了。