elasticsearch中文分词器插件elasticsearch-analysis-ik远程自定义词典热更新

IK简介

IK分词器基于词库进行分词,analysis-ik内置了一些词典:主词典main.dic、姓氏词典surname.dic、量词词典quantifier.dic、后缀词典suffix.dic、介词词典preposition.dic、停词词典stopword.dic。除此之外还可以通过配置文件IKAnalyzer.cfg.xml对词库进行扩展。

analysis-ik依次从如下两个位置尝试加载IKAnalyzer.cfg.xml:

1.elasticsearch配置文件所在目录的analysis-ik目录下。

2.analysis-ik插件所在目录的config目录下。

如果两个位置均未找到会抛出FileNotFoundException异常。analysis-ik内置词典与IKAnalyzer.cfg.xml放在相同的目录中;如果没有IKAnalyzer.cfg.xml文件,则放置在上述目录2中。找不到内置词典时同样会抛出FileNotFoundException异常。

IKAnalyzer.cfg.xml配置文件如下:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE properties SYSTEM "http://java.sun.com/dtd/properties.dtd">
<properties>
	<comment>IK Analyzer 扩展配置</comment>
	<!--用户可以在这里配置自己的扩展字典 -->
	<entry key="ext_dict"></entry>
	 <!--用户可以在这里配置自己的扩展停止词字典-->
	<entry key="ext_stopwords"></entry>
	<!--用户可以在这里配置远程扩展字典 -->
	<!-- <entry key="remote_ext_dict">words_location</entry> -->
	<!--用户可以在这里配置远程扩展停止词字典-->
	<!-- <entry key="remote_ext_stopwords">words_location</entry> -->
</properties>

其中配置项ext_dict和ext_stopwords的值为分号分隔的本地词典路径列表,词典路径是相对于配置文件IKAnalyzer.cfg.xml所在目录的相对路径。配置项remote_ext_dict和remote_ext_stopwords的值为分号分隔的远程词典http地址列表。

远程词典

加载词典

向配置的词典地址发送GET请求,返回内容为每行一个词的词列表。

热更新

向配置的词典地址发送HEAD请求,返回的响应头包括Last-Modified和(或)ETag,两者皆为字符串,当其中任何一个发生改变时,analysis-ik都会发送GET请求重新加载词典。

满足以上两个条件就可以在不重启elasticsearch的情况下热更新词典,当然首次更新完配置后还是需要重启一次elasticsearch的。还有一点需要额外说明的是,无论是远程扩展词典还是远程扩展停词词典发生变化,每次重新加载词典时都会将两者全部重新加载。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值