当前位置: 首页 > 网络应用技术

弹性:ik单词分割单词,禁用单词热更新(2)数据库的数据库

时间:2023-03-06 13:36:13 网络应用技术

  在上一期中,我们解释说,基于API的表单的热更新,但是API表格的热更新不便,可以管理同义词库。有必要直接操作磁盘文件。搜索页面很麻烦。另一个接口调用和网络传输,因此我们将在本期中解释直接数据库的方法,以实现热门更新

  该方法未在官方GitHub中解释,因此它不支持直接连接数据库以实现热门更新。为了实现修改源代码进行操作的需求。

  与API的形式相比,直接连接到数据库的方法更加稳定,但是由于官员不明确支持此方法,因此也存在不确定性。生产中采用了哪种方法,并根据实际业务的需求,取决于实际业务的需求。

  1. github下载源代码:https://github.com/medcl/elasticsearch-analissis-shamis- ik/版本?页面= 2 2.在想法中,刚刚下载的源代码刚刚下载。

  3.引入源代码一段时间。我们首先创建数据表。总共必须创建两个表:单词拆分表,秒表所需的字段ID,单词4。下载源代码中使用的Elasticsearch版本为7.4,我们需要将其更改为相应的版本,因为ES I使用了为7.13.0,因此将其更改为POM中的7.13.0 5,然后将MySQL驱动程序依赖性添加到POM中以依靠POM来依赖依赖性。

  6.创建一个数据库配置文件jdbc-reload.properties,放置在IK项目的配置文件夹下

  7. ik单词分割的源代码加载单词在witea.analyzer.dic中。字典类,打开此类,添加以下方法

  加载单词的两种方法可用于模仿自动加载方法写作,如下所示:添加加载膨胀单词方法

  添加加载脱位单词的方法

  8.在LoadMainDics()中添加自定义的加载扩展字()

  9.添加自定义的加载停止单词以添加一种新方法来添加一种新方法来添加新方法来添加新方法?第一个方法:(1)只要原始方法,加载扩展单词的方法检查了加载扩展单词时,引用了loadRemoteextDict(),将其添加到我们同时编写的扩展单词方法中(2 2)添加stop -stop Word的方法,同样的方式看stop word load loadStopworddict()被引用,将副本添加到第二种方式:将方法直接添加到原始加载扩展单词,停止词,停止词中的方法

  10.由于需要加载数据库,因此数据库驱动程序需要

  11.使用Maven打包项目:注意:这是因为POM使用Elasticsearch4.0,因此该袋子的版本也为7.4.0。将其更改为7.13.0。因为我现在使用的ES是7.13版7.13版,of.12。将包装的IK沉积物添加到ES/Plusgins目录中,删除原始IK Word Segmentor,解锁新的翻新并将其重命名为IK

  13.将MySQL驱动程序罐添加到IK Word Director

  14.重新启动ES

  日志打印已加载的单词并停止单词15.测试

  结果表明单词分割是正常的,并且已终止的单词也被过滤

  解决方案:这是因为JDK权限还不够

  jdk14在/var/local/jdk-14.0.2/lib/security/default.policy.policy.add jdk11+in Grant {}中添加jdk8,因为ES7.12正式建议使用JDK11+版本,并且与ES兼容的仅是JDK8,11,14,因此我以JDK14为例作为示例。

  再次重新启动ES,出现错误[扩展dict载荷]

  解决:

  1.检查MySQL-Confor-Java-8.0.22.jar是否放置在插件目录中。它应该放在插件/IK路径上

  2.检查IK源代码POM中的驱动程序版本是否以及IK目录中的驱动器版本是否一致

  3.在JDK/LIB/SECurity/Default.policy JDK14中添加权限at/var/local/jdk-14.0.2/lib/security/default/default.jdk1.8.0_271/jre/jre/lib/lib/security/java.policy/java.policy adds

  我在这里使用JDK附带的JDK

  添加内容,目的是为IP和端口打开套接字网络链接权限