My logo
Published on

ElasticSearch7.9.3-安装ik分词器

一.安装操作步骤

(1)、下载指定版本的安装包 下载地址:elasticsearch-analysis-ik-7.9.3.zip

(2)、在elasticsearch的plugins 目录下创建一个ik目录

mkdir -p /app/elasticsearch-7.9.3/plugins/ik

(3)、把elasticsearch-analysis-ik-7.9.3.zip包上传到ik⽬录,然后解压

tar -zxvf elasticsearch-analysis-ik-7.9.3.zip

(4)、解压完成后在把我们自己修改后的 elasticsearch-analysis-ik.jar 包替换掉刚刚解压得到的同名的jar包 (5)、同时把 mysql-connector-java-8.0.20.jar 包也上传到ik⽬录

IK

(6)、在ik/config⽬录⾥⾯添加⼀个jdbc.properties⽂件

jdbc.url=jdbc:mysql://127.0.0.1:3306/ss-mall-pro?serverTimezone=Asia/Shanghai&useUnicode=true&characterEncoding=utf-8
jdbc.username=root
jdbc.password=root 

(6)、重启es

ps -ef | grep elasticsearch 

kill 29899 

echo '' > /app/elasticsearch/log/escluster.log 

/app/elasticsearch-7.9.3/bin/elasticsearch -d 

tail -f /app/elasticsearch/log/escluster.log

二.会遇到一个AccessControlException: access denied ("java.lang.RuntimePermission" "setContextClassLoader")

解决方法

vi /app/elasticsearch-7.9.3/jdk/conf/security/java.policy 

# 加上⼀⾏配置
permission java.lang.RuntimePermission "setContextClassLoader";

IK

三.在次运行还会出现一个新的异常 Caused by: java.security.AccessControlException:

access denied ("java.net.SocketPermission" "127.0.0.1:3306" "connect,resolve")

解决方法

vi /app/elasticsearch-7.9.3/jdk/conf/security/java.policy 

# 加上⼀⾏配置
permission java.net.SocketPermission "*", "connect,resolve";

IK

四. 然后我发现在我安装上面的修改没有效果,启动还是会报错

我的JDK 环境是11,但是修改jdk 安全策略,即修改 java.policy文件。部分版本不支持,好像会修改无效,因此我使用下面方法:

es安装目录 config 下新建 policy.policy文件 ,添加如下内容

IK

grant {
   permission java.net.SocketPermission "*:*","connect,resolve";
   permission java.lang.RuntimePermission "getClassLoader"; 
   permission java.lang.RuntimePermission "setContextClassLoader"; 
};

修改 jvm.option文件增加

-Djava.security.policy=你的es安装目录/config/policy.policy

重启es即可。


🔗🔗 参考:

  1. 关联ES的安装:ElasticSearch7.9.3-单机部署

  2. 关联KB的安装:Kibana7.9.3-单机部署

  3. 这里的内容主要是参考- elasticsearch 热更新-mysql远程实现异常处理