Elasticsearch安装以及配置hanlp中文分词插件

如题所述

第1个回答  2022-06-26

elasticsearch默认开启两个端口:9200,用于ES节点和外部通讯;9300,用于ES节点之间通讯

报错: org.elasticsearch.bootstrap.StartupException: java.lang.RuntimeException: can not run elasticsearch as root ,不能以root用户的身份运行elasticsearch
解决方法:新建用户组和用户,并赋予其elasticsearch文件夹的权限

再次运行
WARN: java.lang.UnsupportedOperationException: seccomp unavailable: CONFIG_SECCOMP not compiled into kernel, CONFIG_SECCOMP and CONFIG_SECCOMP_FILTER are needed ,使用新的linux版本即可,不影响使用

启动失败,出现上面四个错误,一一解决
ERROR[1]:无法创建本地文件问题,用户最大可创建文件数太小
解决方法:切换到root用户,编辑limits.conf配置文件

ERROR[2]:无法创建本地线程问题,用户最大可创建线程数太小
解决方法:切换到root用户,进入limits.d目录下,修改90-nproc.conf 配置文件

ERROR[3]:最大虚拟内存太小
解决方法:切换到root用户下,修改配置文件sysctl.conf

ERROR[4]:这是在因为Centos6不支持SecComp,而ES5.2.0默认bootstrap.system_call_filter为true进行检测,所以导致检测失败,失败后直接导致ES不能启动
解决方法:在elasticsearch.yml中配置bootstrap.system_call_filter为false

解决完成后,重新启动,启动成功
如果要在后台运行,使用 ./bin/elasticsearch -d 启动
访问 http://192.168.1.200:9200/,返回数据

现在启动elasticsearch,提示jar包冲突

现在启动elasticsearch,没有异常,我们测试一下hanlp分词插件有没有生效
访问: http://192.168.1.200:9200/_analyze?text=%E4%B8%AD%E5%9B%BD%E7%9A%84%E5%86%9B%E4%BA%8B%E5%AE%9E%E5%8A%9B%E4%B8%8E%E6%97%A5%E4%BF%B1%E5%A2%9E&analyzer=hanlp
elasticsearch报错并且退出运行

看上去是权限的问题,这就用到hanlp目录下的 plugin-security.policy 文件,修改 /elasticsearch/config/jvm.options 文件,在末尾添加

继续测试上面的链接,提示找不到hanlp.properties,hanlp无法加载词典,elasticsearch退出运行,解决方法:修改 /elasticsearch/bin/elasticsearch.in.sh 文件,将ES_CLASSPATH修改为:

继续测试上面的链接,访问成功,返回结果

可以看到分词效果比较好,而且停用词也被过滤了,大功告成!

相似回答