之所以采用Elasticsearch6.3.1,主要是希望用最新的springboot来开发一个搜索引擎,实践中发现spring-data-elasticsearch插件不好用,而官网推荐的resthighlevelclient 也有问题,等待官网更新吧,最后我的开发环境是采用springboot2.0基于spring5,客户端用的是jestclient,通过依赖注入的方式使用的,这个开发流程太烦琐,网上例子比较多,本文不再累赘,这里主要是讲下es6.3.1和IK分词器安装,方便大家使用es6.3.1的版本,官网es已经更新到6.3.2,但是IK分词还是6.3.0的版本,这里本人是修改了IK分词的配置到6.3.1,估计6.3.2的也是一样的改法。
step1.下载elasticsearch6.3.1Realease,和 IK分词器6.3.0,基于cendos6版本的
step2,解压缩和安装配置分词器和es
* 为什么是先配置分词器,因为6.3.0的分词器没有办法直接用在6.3.1的es,需要手动修改IK的配置
a. 首先进入到es6.3.1解压缩后的plugins文件夹,建立IK目录,笔者解压缩后的es文件夹名为es631
b. 进入ik目录,然后将ik解压到本目录
c.配置修改ik的版本适应es6.3.1,修改文件plugin-descriptor.properties,config文件夹下的配置文件主要是IK本身暂时不需要修改,这个properties文件主要是和es交互,修改其es版本和jdk版本号,如图
d. IK配置完成后,进入es的配置文件夹,配置es的配置文件,如图,其核心配置文件是elasticsearch.yml,由于笔者采用的是9200 http请求, 9300是tcpclient使用,而且配置的是单节点,所以配置文件修改的是这样的(grep命令是去掉空行和注释后的核心配置)
Step3. 启动es6.3.1报错如下
实际上解决上述问题可以参考百度,逐个修改,这里一步步来,比较难以解决的问题是【1】修改了文件描写符后,也可能依然报错,这个问题放到最后解决和解释
a. 解决 问题【1】【2】【3】【4】
1.修改elasticsearch.yml, 末尾加上如下设置,解决boostrap check错误
2.修改sysctl.conf 并执行sysctl -p (需要root权限)
3.修改90-nproc.conf 为4096
4. vi /etc/security/limits.conf
如图添加 相关的文件描叙符
文件描叙符的相关问题理论上添加完以上就可以了,但是实际上由于用户默认进入的profile不一致,root用户和es用户的权限不一致,需要切换到es用户,执行./elastcisearch -d, 有时候会发现虽然修改了描叙符,但是退出session后不能保持,需要下次进入的时候修改进入时的用户session,才能启动