一、 安装ElasticSearch
安装JAVA11
1、查看本机是否自带java:
rpm -qa|grep java
2、有则卸载:
yum remove java*
3、查看yum中jdk版本:
yum search jdk
发现有java11,列出java11:
yum list |grep java-11
yum install java-11-openjdk.x86_64 java-11-openjdk-headless.x86_64 java-11-openjdk-devel.x86_64
4、配置环境变量
安装完之后,默认的安装目录是在: /usr/lib/jvm/
编辑配置文件,设置环境变量:
vim /etc/profile
在profile文件中添加如下内容 jre-11-openjdk-11.0.8.10-0.el7_8.x86_64
#set java environment JAVA_HOME=/usr/lib/jvm/jre-11-openjdk-11.0.8.10-0.el7_8.x86_64 JRE_HOME=$JAVA_HOME CLASS_PATH=.:$JRE_HOME/lib PATH=$PATH:$JAVA_HOME/bin export JAVA_HOME JRE_HOME CLASS_PATH PATH
让修改生效:
source /etc/profile
验证:
java -version
二、创建ES用户
//创建elsearch用户&组
groupadd elsearch
useradd elsearch -g elsearch
passwd elsearch
三、配置运行ES需要的系统环境变量
vim /etc/security/limits.conf
添加:
* soft nofile 65536 * hard nofile 65536 * soft nproc 4096 * hard nproc 4096
vim /etc/sysctl.conf
添加:
vm.max_map_count=655360
# sysctl -p
四、安装elasticsearch
cd /data
wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.9.2-linux-x86_64.tar.gz
tar xf elasticsearch-7.9.2-linux-x86_64.tar.gzchown -R elsearch:elsearch /data/elasticsearch-7.9.2
su - elsearch/data/elasticsearch-7.9.2/bin/elasticsearch -d
测试:
$ curl 127.0.0.1:9200
如果要实现远程访问:
修改配置文件elasticsearch.yml的配置项network.host,然后重启elasticsearch:
例:
$ vim /app/elasticsearch-7.9.2/config/elasticsearch.yml
network.host: 192.168.51.233
discovery.seed_hosts: ["127.0.0.1", "[::1]"]
测试:浏览器登录 http://192.168.51.233:9200/
后台运行:
# su - elsearch
$ /data/elasticsearch-7.9.2/bin/elasticsearch -d
重启服务:只能kill进程再运行
ps -ef | grep elastic
kill -9 (进程号)
=========================================================================
五、安装elasticsearch-analysis-ik中文分词插件
在Elasticsearch中默认的分词器对中文的支持不好,会分隔成一个一个的汉字。而IK分词器对中文的支持比较好,主要有两种模式“ik_smart”和“ik_max_word”。
安装IK分词器
方法一: 自动安装IK分词器
注意: 必须保证centos系统是联网的。
IK分词器的GitHub地址,选择跟自己的Elasticsearch对应的版本,本文使用的版本是Elasticsearch7.9.2版本。
https://github.com/medcl/elasticsearch-analysis-ik
更多版本地址
找到IK分词器的7.9.2的地址然后使用elasticsearch-plugin命令安装:
./bin/elasticsearch-plugin install https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v7.9.2/elasticsearch-analysis-ik-7.9.2.zip
#查看安装的插件
$ elasticsearch-plugin list
IK 分词器提供了 2 种分词模式:
ik_max_word :IK 最大化分词,会将文本做最细粒度的拆分。
ik_smart :IK 智能分词,会做最粗粒度的拆分。
我们将 "百事可乐" 进行分词,看看他们之间的差异。
# ik_max_word 模式
$ curl -X POST
http://localhost:9200/_analyze
-H 'content-type: application/json'
-d '{
"analyzer": "ik_max_word",
"text": "百事可乐"
}'
{"tokens":[{"token":"百事可乐","start_offset":0,"end_offset":4,"type":"CN_WORD","position":0},{"token":"百事","start_offset":0,"end_offset":2,"type":"CN_WORD","position":1},{"token":"百","start_offset":0,"end_offset":1,"type":"TYPE_CNUM","position":2},{"token":"事","start_offset":1,"end_offset":2,"type":"CN_CHAR","position":3},{"token":"可乐","start_offset":2,"end_offset":4,"type":"CN_WORD","position":4}]}
# ik_smart 模式
$ curl -X POST
http://localhost:9200/_analyze
-H 'content-type: application/json'
-d '{
"analyzer": "ik_smart",
"text": "百事可乐"
}'
{"tokens":[{"token":"百事可乐","start_offset":0,"end_offset":4,"type":"CN_WORD","position":0}]}
很明显,ik_max_word 比 ik_smart 分出了更多的词。



