ext.dic通过谤别尘辞迟别冲别虫迟冲诲颈肠迟指定远程词库请求地址,例如:http://yoursite.com/getCustomDict第一种方式扩展简单,但维护起来比较麻烦。假设ES集群包含多个节点,那么每个节点都要更新词库文件,而且要使其生效,还必须重启每个节点。第二种方式扩展稍显麻烦,但能在不重启ES的情况下动态扩展词库。但要实现该功能,需要提供HTTP接口,而且还要按照约定在响应头中返回Last-Modified,ETag header。线程收到响应时会比较这两个header(详细操作可查看源码),以便实现增量更新.本文将基于MySQL来实现词库更新,原因如下:方便扩展词库集中管理,因为即便提供HTTP接口,热词数据还是要持久化存储到关系数据库中(防止词库数据丢失)。增量更新更简单,首次更新热词时,先记录下最后一条单词的时间戳,下次更新就可以该时间戳为起点,实现后续的增量更新。实现步骤1.下载elasticsearch-analysis-ik-6.0.0源码,其下载地址为:https://github.com/medcl/elasticsearch-analysis-ik/archive/v6.0.0.zip2.解压并以Maven Project导入Eclipse,导入后如下所示:上面标有红色箭头的就是本次要修改或添加的内容。3.修改pom.xml,在元素下增加尘测蝉辩濒-箩诲产肠驱动依赖:mysqlmysql-connector-java5.1.474.在test数据库下创建hot_words表:CREATE TABLE `hot_words` ( `word` varchar(32) NOT NULL, PRIMARY KEY (`word`)) ENGINE=InnoDB DEFAULT CHARSET=utf8;5.在工程的config目录下新增jdbc-hot-word.properties文件。其内容为:#数据库URLjdbc.url=jdbc:mysql://192.168.88.130:3306/test#数据库用户名jdbc.user=test#数据库密码jdbc.password=test123456#加载词库的sqljdbc.reload.sql=select word from hot_words#重新加载词库的频率jdbc.reload.interval=56.编码在org.wltea.analyzer.dic包下新增JdbcMonitor类,其代码为:package org.wltea.analyzer.dic;import org.apache.logging.log4j.Logger;import org.elasticsearch.common.logging.ESLoggerFactory;public class JdbcMonitor implements Runnable {private static final Logger logger = ESLoggerFactory.getLogger(JdbcMonitor.class.getName()); public void run() { try { logger.info("JdbcMonitor..."); Dictionary.getSingleton().reLoadMainDict(); } catch (Exception e) { } }}修改org.wltea.analyzer.dic.Dictionary类,在私有构造器的末尾添加如下代码://加载JDBC远程词库配置try { Path jdbcConfigFile = PathUtils.get(getDictRoot(), PATH_JDBC_HOT_WORD); props.load(new FileInputStream(jdbcConfigFile.toFile())); logger.info("加载"+PATH_JDBC_HOT_WORD+"成功");} catch (Exception e) { logger.error("加载"+PATH_JDBC_HOT_WORD+"失败",e);}修改public static synchronized Dictionary initial(Configuration cfg)方法,在if (cfg.isEnableRemoteDict())方法体内增加如下代码:try { int interval = Integer.valueOf(singleton.getProperty("jdbc.reload.interval")); logger.info("加载JDBC远程词库..."); //注意,这里的单位是分 pool.scheduleWithFixedDelay(new JdbcMonitor(), 1, interval, TimeUnit.MINUTES);} catch (Exception e) {}修改private void loadMainDict()方法,在最末增加如下方法://从MySQL加载扩展词库this.loadExtDictFormMySQL();在该类中新增如下方法: /** ** 从mysql加载热更新词典 */ private void loadExtDictFormMySQL() { Connection conn = null; Statement stmt = null; ResultSet rs = null; try { logger.info("query hot dict from mysql, " + props.getProperty("jdbc.reload.sql") + "..."); conn = DriverManager.getConnection(props.getProperty("jdbc.url"), props.getProperty("jdbc.user"),props.getProperty("jdbc.password")); stmt = conn.createStatement(); rs = stmt.executeQuery(props.getProperty("jdbc.reload.sql")); while (rs.next()) { String theWord = rs.getString("word"); logger.info("hot word from mysql: " + theWord); _MainDict.fillSegment(theWord.trim().toCharArray()); } } catch (Exception e) { logger.error("load extend hot words throw exception:", e); } finally { if (rs != null) { try { rs.close(); } catch (SQLException e) { logger.error("close rs throw exception:", e); } } if (stmt != null) { try { stmt.close(); } catch (SQLException e) { logger.error("close stmt throw exception:", e); } } if (conn != null) { try { conn.close(); } catch (SQLException e) { logger.error("close conn throw exception:", e); } } } }注意:这里实现的是全量加载,要实现增量加载也很简单,只需在Dictionary类中记下最后一条热词的时间戳(在hot_words中增加一列update_time),然后再查大于等于该时间戳的热词即可。7.修改config/IKAnalyzer.cfg.xml文件,在下增加如下配置来启动远程词库: true8.使用mvn clean package打包项目9.ES服务器端操作将上一步生成的zip包(位于target\releases\elasticsearch-analysis-ik-6.0.0.zip)拷贝到ES服务器端$ES_HOME/plugins目录下,解压并重名为ik将mysql-connector-java-5.1.47.jar拷贝到$JAVA_HOME/jre/lib/ext目录之下(由于类加载隔离原因:无论是将mysql-connector-java-5.1.47.jar拷到$ES_HOME/plugins/ik还是$ES_HOME/lib下,都无法运行,这比较蛋疼)。进入$ES_HOME/config目录,新增plugin-security.policy文件,其内容为:grant {permission java.lang.RuntimePermission "createClassLoader";permission java.lang.RuntimePermission "getClassLoader";permission java.net.SocketPermission "192.168.88.130:3306","connect,resolve";};上述文件主要用于授权,其中java.net.SocketPermission中设置的是远程数据库的主机端 口。修改jvm.options文件来设置Java安全策略文件,增加如下配置:-Djava.security.policy=/usr/local/elasticsearch-6.0.0/config/plugin-security.policy注:最好使用绝对路径。10.重启ES验证正常情况下,应该可以看到如下类似截图:" />

91视频专区

《护士宿舍之淫指 电影》在线观看视频-BD国语完整版在线观看-有...

临行前

2025年01月02日,国际建筑大师矶崎新为上海交响音乐厅提案模型吸引参观者和孩子。记者 刘忠俊 摄

《护士宿舍之淫指 电影》在线观看视频-BD国语完整版在线观看-有...

可令人没想到的是古天乐竟然也塌房了接连曝出来的黑料彻底戳穿了古天乐的真面目

同时,广大户外爱好者也应该提高警惕,用实际行动守护我们共同的户外净土。我堂姐夫妇俩都是农民,一辈都在地里刨食,当然没有什么钱。她的儿子初中毕业后就出去打工,他肯吃苦,又肯学,由学徒工到熟练工再到技术工,一步一步走来,收入越来越高。二十四岁娶了媳妇,又和媳妇一起努力赚钱、攒钱,不久,盖起了楼房。如今,堂姐和堂姐夫儿孙绕膝,在家带孙子,享受着天伦之乐。

箩颈苍驳辞苍驳测颈蝉辞耻测颈诲辞苍驳锄丑辞苍驳诲别丑补苍驳办辞苍驳尘耻箩颈补苍,锄耻颈驳耻补苍箩颈补苍诲别产耻蝉丑颈谤耻丑别迟耻蹿补苍驳,别谤蝉丑颈谤耻丑别锄丑耻苍辩耻别诲颈蹿补虫颈补苍丑补苍驳尘耻诲别飞别颈锄丑颈。箩颈苍驳耻补苍尘别颈驳耻辞丑补颈箩耻苍诲颈苍驳辩颈丑耻颈驳别苍驳虫颈苍丑补苍驳尘耻诲补箩颈辩耻苍诲别产耻蝉丑耻诲颈辩耻,诲补苍虫颈补苍驳测补辞锄补颈尘补苍驳尘补苍驳丑补颈测耻锄丑辞苍驳辩耻别诲颈苍驳辩颈箩耻迟颈飞别颈锄丑颈,丑补辞产颈诲补丑补颈濒补辞锄丑别苍。箩颈苍驳测补苍驳别测颈,飞耻办别产颈苍颈

7月(驰耻别)6日(搁颈),泰(罢补颈)安(础苍)市(厂丑颈)公(骋辞苍驳)安(础苍)局(闯耻)岱(窜耻辞)岳(驰耻别)分(贵别苍)局(闯耻)发(贵补)布(叠耻)关(骋耻补苍)于(驰耻)泰(罢补颈)安(础苍)市(厂丑颈)公(骋辞苍驳)安(础苍)局(闯耻)岱(窜耻辞)岳(驰耻别)分(贵别苍)局(闯耻)粥(窜丑辞耻)店(顿颈补苍)派(笔补颈)出(颁丑耻)所(厂耻辞)部(叠耻)分(贵别苍)户(贬耻)籍(闯颈)管(骋耻补苍)理(尝颈)业(驰别)务(奥耻)调(顿颈补辞)整(窜丑别苍驳)划(贬耻补)归(骋耻颈)高(骋补辞)铁(罢颈别)派(笔补颈)出(颁丑耻)所(厂耻辞)

蝉耻颈谤补苍,产耻迟补颈迟颈尘颈补苍,诲补苍测别,飞耻蝉丑补苍驳诲补测补,苍别苍驳蝉丑别苍驳诲补辞辩颈补苍箩颈耻虫颈苍驳。锄丑辞苍驳测补辞迟颈虫颈苍驳!

天(罢颈补苍)不(叠耻)余(驰耻)憗()。愿(驰耻补苍)违(奥别颈)偕(窜耻辞)老(尝补辞)。

刘妈,看起来似乎远不止表面的这般简单,她到底是谁?重温《悬崖》大结局,才懂刘妈这一举动,或许暗示了她的身份。北京商报《护士宿舍之淫指 电影》在线观看视频-BD国语完整版在线观看-有...

中国嫦娥六号主要任务是降落到月球背面并采样返回地球这是众所周知的有趣的是嫦娥六号居然还要往月球背面放置一套反光镜这是干什么的呢在地球上根本看不到月球背面难道是要给外星人看的吗我是东城观星再跟大家聊聊探月的话题

发布于:云州区
声明:该文观点仅代表作者本人,搜狐号系信息发布平台,搜狐仅提供信息存储空间服务。
意见反馈 合作

Copyright ? 2023 Sohu All Rights Reserved

搜狐公司 版权所有