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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Elasticsearch安装以及配置hanlp中文分词插件相关的知识,希望对你有一定的参考价值。

参考技术A

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修改为:

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

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

elasticsearch 安装hanlp插件

1.HanLP分词器插件下载地址
https://github.com/pengcong90/elasticsearch-analysis-hanlp/releases
下载analysis-hanlp.zip


2.解压到ElasticSearch下plugins目录下


3.配置
修改analysis-hanlp目录下的hanlp.properties文件,修改root的属性,值为analysis-hanlp下的data 目录的地址
修改analysis-hanlp目录下的plugin-descriptor.properties文件,elasticsearch.version=你的es版本号(like:5.5.1)


修改es config目录下的jvm.options文件,最后一行添加
-Djava.security.policy=../plugins/analysis-hanlp/plugin-security.policy


4.HanLP有以下两种分词器
hanlp-index:尽可能的切分多的结果
hanlp-smart:切分少的词
---------------------
 
原文:https://blog.csdn.net/qwerty1994/article/details/78679072

以上是关于Elasticsearch安装以及配置hanlp中文分词插件的主要内容,如果未能解决你的问题,请参考以下文章

一docker-compose部署elasticsearch+hanlp(7.16.2版本)----附完整镜像

Elasticsearch 7.X 自然语言处理分词器 hanlp 使用

python调用Hanlp做命名实体识别以及词性标注

elasticsearch简单的安装以及集群配置详解

ElasticSearch 中文分词器对比

干货|全文检索Solr集成HanLP中文分词