使用es,一般都要使用IK分词器,通常需要配置IK分词器的扩展词典。下面介绍如何配置IK分词器的远程扩展词典。
1. 需要定义一个提供扩展词典的接口
接口返回值 为 string,每个词占一行。例如:
2. 修改IKAnalyzer.cfg.xml中的remote_ext_dict配置路径
IKAnalyzer.cfg.xml 为IK分词器的配置文件,如果没有则需要创建。文件位置:IK分词器中config
目录。
文件内容为:
<?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="remote_ext_dict">带http前缀的接口地址</entry>
</properties>
这样就配置好了。
注意:配置完之后,对新添加的索引数据就会按照扩展词典进行分词。但是原有的索引数据不会,需要对原有数据重新生成索引。
总结:如果扩展词典不是一次性导入,而是一边使用一遍添加扩展分词,远程扩展词典就比本地扩展词典更适合:可以从远程接口获取,当然接口的数据来源也需要维护,但不需要每次都修改本地的扩展词典。因为远程接口允许我们提供一个人性化的页面来维护词典数据,而修改本地扩展词典,往往需要登录服务器,并使用linux命令。