elasticsearch安装dynamic-synonym插件
今天就来和大家讲讲如何在es中安装dynamic-synonym插件,首先我们需要去github上下载与es版本对应的插件,一般github上基本都是本地词库和远程文本词库的,在gitee上可以找到采用数据库作为词库的源码,大致思路就是修改一些参数配置,然后自己创建一个表作为同义词词库,最后将打包好的jar包插件丢到es-plugins目录下面,最后重启一下就能跑起来了。但是!!!作者没有跑起来,遇到了好多问题【哭泣泣】,因为我是在docker容器中运行的es,而容器一直报的是Java权限问题,我在网络上找了一圈才东拼西凑的把这个问题给解决,真的太高兴啦!!!
接下来就开始讲讲思路
- 下载源码,修改dynamic-synonym配置
- 新增MySQL代码
- 创建一个dynamic-synonym的表
- 修改docker中es容器的Java.policy文件【非常重要】
- 将打包好的jar包放入到 {es-root}/es-plugins目录下面
- docker重启es容器
- 新建es的dynamic-synonym索引测试
文章末尾会给出作者已经配置好的插件代码!!!!!! 请注意签收!!!!!可以直接跳到四或者五,根据你自己的需求来选择
一、下载源码并且修改配置
github好多好多的源码啊,真的是看都看不过来,下载之后要结合自己es版本切换分支,这里建议直接下载最原始的源码,链接为:https://github.com/bells/elasticsearch-analysis-dynamic-synonym,下载好了之后需要切换与es版本对应代码分支,作者的es版本为7.12.1,修改一下pom文件的配置
1.1 修改pom.xml文件
这里在做链接MySQL数据的时候要注意一下MySQL的驱动jar包,不同版本的url会有所区别。
二、新增MySQL代码
2.1 新增MysqlRemoteSynonymFile文件
2.2 在getSynonymFile新增MySQL的连接方式
修改的DynamicSynonymTokenFilterFactory的资源获取代码
三、创建一个dynamic-synonym的表
3.1 建库建表
作者这边的数据库名称为word,表名为synonym
3.2 修改数据库连接的配置文件
在项目的src同级目录下新增config/jdbc-reload.properties文件
四、修改docker中es容器的Java.policy文件【非常重要】
这里作者用的是docker容器化部署,如果是直接装在windows系统或者centos系统下,就要去修改es依赖的Jdk,直接修改系统的jdk的java.policy文件。在这里不直接修改系统jdk的java.policy文件是因为docker容器化部署的es是独立于系统的jdk运行的,这个es有一套自己的输出逻辑。
4.1 找到Java.policy
首先进入到容器内部操作 docker exec -it es /bin/bash,然后直接打开 cd /usr/share/elasticsearch/jdk/conf/security/文件夹,找到Java.policy文件。
4.2 修改java.policy文件
下面文件的全部内容:
五、将打包好的jar包放入到 {es-root}/es-plugins目录下面
5.1 在打包之前一定要注意自己es的版本号
5.2 打包完成之后解压文件并且上传到服务器中的es的plugins目录
这里作者用的docker的容器部署,如果是windows本地直接找到plugins目录放进去就可以了。
六、docker重启es容器
如果直接安装在系统上,就直接去找到elasticsearch/bin目录下重启一下就可以啦。作者这里是容器部署的哈。
容器重启之后记得查看一下docker的控制台输出,看看有没有什么问题,如果出现权限之类的问题,那基本上就是java.policy文件没有配置正确,如果出现数据库之类的问题,请在本地建个Java项目连接一下试试,看看能不能跑的起来。
七、新建es的dynamic-synonym索引测试
Navicat Premium 8.1.12激活
这样子就算运行成功啦,开心撒花!!!
八、总结
8.1 源码地址
为了做这个项目,作者搞了大概得有一天,为了让大家节省时间,这里可以直接下载我已经配置好的源码
8.2 小节
经过一天的研究,终于大致弄明白es插件的运行过程了,为后续实现自动补全功能、优化搜索、广告推荐、聚合查询做好了前提条件。
以后如果做这些功能了再将博客补上,最后,感谢大家的支持
今天的文章
Navicat Premium 8.1.12激活(elasticsearch插件安装(二)之dynamic-synonym插件)分享到此就结束了,感谢您的阅读。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/117623.html